sql >> Databasteknik >  >> RDS >> Sqlserver

Hur använder man group by i SQL Server-fråga?

I allmänhet, när du väl har börjat GRUPPERA, måste varje kolumn som listas i din SELECT antingen vara en kolumn i din GROUP eller någon sammanställning därav. Låt oss säga att du har en sådan här tabell:

| ID | Name        | City        |
|  1 | Foo bar     | San Jose    |
|  2 | Bar foo     | San Jose    |
|  3 | Baz Foo     | Santa Clara |

Om du ville få en lista över alla städer i din databas och försökte:

SELECT * FROM table GROUP BY City

...det skulle misslyckas, eftersom du frågar efter kolumner (ID och namn) som inte finns i GROUP BY-satsen. Du kan istället:

SELECT City, count(City) as Cnt FROM table GROUP BY City

...och det skulle ge dig:

| City        | Cnt |
| San Jose    |  2  |
| Santa Clara |  1  |

...men skulle INTE få dig ID eller namn. Du kan göra mer komplicerade saker med t.ex. underval eller självansluter, men i princip är det du försöker göra inte möjligt som sagt. Dela upp ditt problem ytterligare (hur vill du att data ska se ut?) och gå därifrån.

Lycka till!



  1. SQL - Hitta saknade int-värden i mestadels ordnade sekventiella serier

  2. Den bästa effektiva metoden för att ansluta MySQL från PHP?

  3. Hur kan jag ställa in sökvägen för heroku postgresql-appen?

  4. Hur man implementerar php-mysql datapaginering med hjälp av dataleverantörer