sql >> Database teknologi >  >> RDS >> PostgreSQL

grupper efter dato aggregatfunktion i postgresql

I øjeblikket er det uklart, hvad du ønsker, at Postgres skal returnere. Du siger, at den skal bestilles efter persons.updated_at men du henter ikke det felt fra databasen.

Jeg tror, ​​det du vil gøre er:

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!

Nu beder du eksplicit DB'en om at sortere efter den resulterende værdi fra COUNT-aggregatet. Du kan også bruge:ORDER BY 2 DESC , der effektivt fortæller databasen at sortere efter den anden kolonne i resultatsættet. Jeg foretrækker dog stærkt at angive kolonnen for klarhedens skyld.

Bemærk at jeg i øjeblikket ikke er i stand til at teste denne forespørgsel, men jeg tror, ​​det burde virke.



  1. Hvad skal jeg bruge for at køre SQL?

  2. Hvordan udfylder man manglende datoer i MySQL?

  3. C#-forespørgsel:'System.InvalidOperationException' | Yderligere information:Forbindelsen skal være gyldig og åben

  4. Sådan vælger du hurtigt data fra Oracle