sql >> Database teknologi >  >> RDS >> Sqlserver

Hvordan bruger man group by i SQL Server-forespørgsel?

Generelt, når du starter GROUPing, skal hver kolonne, der er angivet i din SELECT, enten være en kolonne i din GROUP eller en samling deraf. Lad os sige, at du har et bord som dette:

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

Hvis du ønskede at få en liste over alle byerne i din database, og prøvede:

SELECT * FROM table GROUP BY City
 

... det ville mislykkes, fordi du beder om kolonner (ID og navn), der ikke er i GROUP BY-sætningen. Du kunne i stedet:

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

...og det ville give dig:

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

...men ville IKKE få dig ID eller navn. Du kan gøre mere komplicerede ting med f.eks. undervælger eller tilslutter sig selv, men dybest set er det, du prøver at gøre, ikke muligt som nævnt. Neddel dit problem yderligere (hvordan vil du have dataene til at se ud?), og gå derfra.

Held og lykke!



  1. Konvertering af udvalgte resultater til Indsæt script - SQL Server

  2. SQL-snydeark:Hvad er SQL, SQL-kommandoer og SQL-injektion

  3. C# MySQL-fejl Kolonneantal stemmer ikke overens med værdiantallet i række 1

  4. udvalgte brugere har mere end én særskilt post i mysql