sql >> Database >  >> RDS >> Sqlserver

Hoe group by te gebruiken in SQL Server-query?

In het algemeen geldt dat als u eenmaal begint met GROEPEN, elke kolom in uw SELECT een kolom in uw GROEP moet zijn of een aggregaat daarvan. Laten we zeggen dat je een tabel als deze hebt:

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

Als je een lijst wilt krijgen van alle steden in je database en je hebt geprobeerd:

SELECT * FROM table GROUP BY City

...dat zou mislukken, omdat u om kolommen (ID en naam) vraagt ​​die niet in de GROUP BY-component staan. U kunt in plaats daarvan:

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

...en dan krijg je:

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

...maar zou u GEEN ID of naam geven. Je kunt ingewikkeldere dingen doen met b.v. subselects of self-joins, maar eigenlijk is wat je probeert te doen niet mogelijk zoals vermeld. Verdeel uw probleem verder (hoe wilt u dat de gegevens eruit zien?) en ga van daaruit verder.

Veel succes!



  1. SQL Sentry is nu SentryOne

  2. Kan door komma's gescheiden waarden niet weergeven in een tabel

  3. Vraag terug van een door de PDO opgestelde verklaring

  4. Hoe splitsen en links meedoen in orakel