PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Gruppieren nach Datum Aggregatfunktion in Postgresql

Im Moment ist unklar, was Postgres zurückgeben soll. Sie sagen, es sollte nach persons.updated_at sortiert werden aber Sie rufen dieses Feld nicht aus der Datenbank ab.

Ich denke, was Sie tun möchten, ist:

SELECT date(updated_at), count(updated_at) as total_count 
FROM "persons"
WHERE ("persons"."updated_at" BETWEEN '2012-10-17 00:00:00.000000' AND '2012-11-07     12:25:04.082224') 
GROUP BY date(updated_at)
ORDER BY count(updated_at) DESC -- this line changed!

Jetzt weisen Sie die DB explizit an, nach dem Ergebniswert aus dem COUNT-Aggregat zu sortieren. Sie können auch verwenden:ORDER BY 2 DESC , wodurch die Datenbank effektiv angewiesen wird, nach der zweiten Spalte in der Ergebnismenge zu sortieren. Ich bevorzuge es jedoch, die Spalte der Klarheit halber explizit anzugeben.

Hinweis dass ich diese Abfrage derzeit nicht testen kann, aber ich denke, dass dies funktionieren sollte.