sql >> Databáze >  >> RDS >> Sqlserver

Jak používat skupinu podle v dotazu SQL Server?

Obecně platí, že jakmile začnete GROUPing, každý sloupec uvedený ve vašem SELECT musí být buď sloupcem ve vaší GROUP, nebo nějakým jeho souhrnem. Řekněme, že máte tabulku takto:

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

Pokud jste chtěli získat seznam všech měst ve vaší databázi a zkusili jste to:

SELECT * FROM table GROUP BY City

...to by se nezdařilo, protože požadujete sloupce (ID a Název), které nejsou v klauzuli GROUP BY. Místo toho můžete:

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

...a to by vás dostalo:

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

...ale nezískal bych vám ID ani jméno. Složitější věci můžete dělat např. podvýběry nebo samopřipojení, ale v zásadě to, co se snažíte udělat, není možné, jak je uvedeno. Rozeberte svůj problém dále (jak chcete, aby data vypadala?) a pokračujte odtamtud.

Hodně štěstí!



  1. Více databází v dockeru a docker-compose

  2. Dotaz ze dvou tabulek v přehledu

  3. Vložte data do databáze MySql a zobrazte, zda bylo vložení úspěšné nebo neúspěšné

  4. Vyberte konkrétní řádky a sloupce z databáze SQL