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:

Skärmbild av frågeresultat: genomsnittligt pris grupperat efter utgivare.

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 visa enskilda rubriker i frågan. Om du lägger till kolumner i frågeutdata lägger därför fråge- och vydesignerverktygen (Visual Database Tools) automatiskt till dem i GROUP BY instruktionens sats i SQL-fönstret (Visual Database Tools). 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) AS Total_price
FROM titles
GROUP BY pub_id, type;

Resultatet kan se ut så här:

Skärmbild av frågeresultat: pris grupperat efter utgivare och typ.

Gruppera rader

  1. Starta frågan genom att lägga till de tabeller som du vill sammanfatta i fönstret Diagram.

  2. 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.

  3. 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 en GROUP BY sats i -instruktionen i SQL-fönstret. SQL-instruktionen kan till exempel se ut så här:

    SELECT pub_id
    FROM titles
    GROUP BY pub_id;
    
  4. Lägg till kolumnen eller kolumnerna som du vill aggregera i fönstret Villkor. Kontrollera att kolumnen är markerad för utdata.

  5. 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 (Visual Database Tools).

    Skärmbild av att lägga till ett kolumnalias i frågeresultatuppsättningen.

    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;