PostgreSQL: Indexiert den Tag eines Zeitstempels

Betrachten Sie die folgende Tabelle:

       Column       |           Type           |
--------------------+--------------------------+
 id                 | bigint                   |
 creation_time      | timestamp with time zone |
...

Queries wie die folgenden (geschweige denn kompliziertere JOINs) brauchen eine Weile, da sie die Erstellungszeit :: DATE für jeden Artikel berechnen müssen:

SELECT creation_time::DATE, COUNT(*) FROM items GROUP BY 1;

Wie erstelle ich einen Index für den Tagesteil des Zeitstempels -creation_time::DATE?

Ich habe versucht

CREATE INDEX items_day_of_creation_idx ON items (creation_time)::date;CREATE INDEX items_day_of_creation_idx ON items (creation_time::date);

Aber beide fehlgeschlagen mit:

ERROR:  syntax error at or near "::"

Antworten auf die Frage(4)

Ihre Antwort auf die Frage