sql >> Database >  >> RDS >> PostgreSQL

groeperen op datum aggregatiefunctie in postgresql

Op dit moment is het onduidelijk wat u wilt dat Postgres teruggeeft. Je zegt dat het moet bestellen bij persons.updated_at maar u haalt dat veld niet op uit de database.

Ik denk dat je het volgende wilt doen:

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 vertel je de DB expliciet om te sorteren op de resulterende waarde van het COUNT-aggregaat. Je zou ook kunnen gebruiken:ORDER BY 2 DESC , waardoor de database effectief wordt verteld om te sorteren op de tweede kolom in de resultatenset. Ik geef er echter de voorkeur aan om de kolom expliciet te vermelden voor de duidelijkheid.

Opmerking dat ik deze query momenteel niet kan testen, maar ik denk wel dat dit zou moeten werken.



  1. PDOStatement::nextRowSet() is verbroken in MySQL 5.6.16 op Windows

  2. Sp_help_jobschedule gebruiken in SQL Server

  3. Gebruik TYPEPROPERTY() om informatie over een gegevenstype in SQL Server te retourneren

  4. ACCEPT-instructie in Oracle PL SQL