Gruppera rader i frågeresultat (Visual Database Tools)
gäller för:SQL Server
Om du vill skapa delsummor eller visa annan sammanfattningsinformation för delmängder i en tabell skapar du grupper med hjälp av en aggregeringsfråga. Varje grupp sammanfattar data för alla rader i tabellen som har samma värde.
Du kanske till exempel vill se genomsnittspriset för en bok i tabellen titles
, men dela upp resultatet efter utgivare. För att göra det grupperar du frågan efter utgivare (till exempel pub_id
). Resultatet av frågan kan se ut så här:
När du grupperar data kan du bara visa sammanfattnings- eller grupperade data, till exempel:
Värdena för de grupperade kolumnerna (de som visas i GROUP BY-satsen). I exemplet ovan är
pub_id
den grupperade kolumnen.Värden som genereras av aggregerade funktioner som SUM( ) och AVG( ). I exemplet ovan skapas den andra kolumnen med hjälp av funktionen AVG( ) med kolumnen
price
.
Du kan inte visa värden från enskilda rader. Om du till exempel bara grupperar efter utgivare kan du inte heller visa enskilda rubriker i frågan. Om du lägger till kolumner i frågeutdata lägger Query och View Designer därför automatiskt till dem i GROUP BY-satsen i -instruktionen i SQL-fönstret. Om du vill att en kolumn ska aggregeras i stället kan du ange en mängdfunktion för den kolumnen.
Om du grupperar efter mer än en kolumn visar varje grupp i frågan aggregerade värden för alla grupperingskolumner.
Följande fråga mot titles
-tabellen grupperar efter förlag (pub_id
) och även efter boktyp (type
). Frågeresultaten sorteras efter utgivare och visar sammanfattningsinformation för varje typ av bok som utgivaren skapar:
SELECT pub_id, type, SUM(price) Total_price
FROM titles
GROUP BY pub_id, type
Resultatet kan se ut så här:
Gruppera rader
Starta frågan genom att lägga till de tabeller som du vill sammanfatta i fönstret Diagram.
Högerklicka på bakgrunden i fönstret Diagram och välj sedan Lägg till grupp efter på snabbmenyn. Fråge- och vydesignern lägger till en kolumn Gruppera efter i rutnätet i fönstret Villkor.
Lägg till kolumnen eller kolumnerna som du vill gruppera i fönstret Villkor. Om du vill att kolumnen ska visas i frågeutdata kontrollerar du att kolumnen Output har valts för utdata.
Fråge- och vydesignern lägger till ett GROUP BY-uttryck i satsen i SQL-fönstret. SQL-instruktionen kan till exempel se ut så här:
SELECT pub_id FROM titles GROUP BY pub_id
Lägg till kolumnen eller kolumnerna som du vill aggregera i fönstret Villkor. Kontrollera att kolumnen är markerad för utdata.
I rutnätscellen Gruppera efter för kolumnen som ska aggregeras, väljer du lämplig sammanfattningsfunktion.
Fråge- och vydesignern tilldelar automatiskt ett kolumnalias till den kolumn som du sammanfattar. Du kan ersätta det här automatiskt genererade aliaset med ett mer meningsfullt. Mer information finns i Skapa kolumnalias.
Motsvarande instruktion i fönstret SQL kan se ut så här:
SELECT pub_id, SUM(price) AS Totalprice FROM titles GROUP BY pub_id