PostgreSQL - valeurs de timestamp GROUP BY?
J'ai une table avec les ordres d'achat qui y est stockée. Chaque ligne a un horodatage indiquant le moment où la commande a été passée. J'aimerais être capable de créer un rapport indiquant le nombre d'achats chaque jour, le mois ou l'année. J'ai pensé que je ferais un simple SELECT COUNT(xxx) DE tbl_orders GROUPE PAR tbl_orders.purchase_time et obtenir la valeur, mais il s'avère que je ne peux pas le GROUPE PAR une colonne de type timestamp.
Est-il une autre façon d'accomplir cette? J'aimerais idéalement comme une solution flexible afin que je puisse l'utiliser quel que soit le calendrier dont j'avais besoin (horaire, mensuel, hebdomadaire, etc.) Merci pour toutes les suggestions que vous pouvez donner à!
source d'informationauteur Shadowman
Vous devez vous connecter pour publier un commentaire.
Groupement par une colonne de type timestamp fonctionne très bien pour moi ici, en gardant à l'esprit que même à 1 microseconde différence d'empêcher que deux lignes d'être regroupés.
De groupe par de plus grandes périodes de temps, le groupe par une expression sur la colonne timestamp, qui renvoie d'une manière appropriée tronquée de la valeur.
date_trunc
peut être utile ici, comme on peut leto_char
.Cela fait l'affaire sans la date_trunc fonction (plus facile à lire).
Ce que nous faisons ici est de lancer la valeur d'origine en DATE du rendu du temps, les données de cette valeur sans conséquence.