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

Returner en grupperet liste med forekomster ved hjælp af Rails og PostgreSQL

Dit problem:

Desværre bryder strengheden af ​​Postgres denne forespørgsel, fordi den kræver, at alle felter er specificeret i gruppen efter klausul.

Nu har det ændret sig noget med PostgreSQL 9.1 (citerer udgivelsesnoter fra 9.1):

Tillad ikke-GROUP BY kolonner i forespørgselsmållisten, når primærnøglen er angivet i GROUP BY klausul (Peter Eisentraut)

Hvad mere er, ville den grundlæggende forespørgsel, du beskriver, ikke engang løbe ind i dette:

Vis en liste over de 5 mest brugte tags sammen med de gange, de er blevet tagget.

SELECT tag_id, count(*) AS times
FROM   taggings
GROUP  BY tag_id
ORDER  BY times DESC
LIMIT  5;

Virker under alle omstændigheder.




  1. Eksempel på Oracle IF-tilstand

  2. Kan ikke indsætte post i SQLite-databasen fra Firebase Message Service, når appen er i baggrunden eller lukket tilstand

  3. ORA-22905 - når du forespørger en tabeltype med en select-sætning

  4. Sideinddeling i SQL Server ved hjælp af OFFSET/FETCH