Sdílet prostřednictvím


Seskupení řádků ve výsledcích dotazu (vizuální nástroje databáze)

platí pro:SQL Server

Pokud chcete vytvořit mezisoučty nebo zobrazit další souhrnné informace pro podmnožinu tabulky, vytvoříte skupiny pomocí agregovaného dotazu. Každá skupina shrnuje data pro všechny řádky v tabulce, které mají stejnou hodnotu.

Můžete například chtít zobrazit průměrnou cenu knihy v tabulce titles, ale rozdělit výsledky podle vydavatele. Provedete to tak, že dotaz seskupíte podle vydavatele (například pub_id). Výsledný výstup dotazu může vypadat takto:

Snímek obrazovky s výsledky dotazu: průměrná cena seskupená podle vydavatele

Když seskupíte data, můžete zobrazit jenom souhrnná nebo seskupovaná data, například:

  • Hodnoty seskupených sloupců (ty, které se zobrazují v GROUP BY klauzuli). V předchozím příkladu pub_id je seskupený sloupec.

  • Hodnoty vytvořené agregačními funkcemi, jako jsou SUM( ) a AVG( ). V předchozím příkladu se druhý sloupec vytvoří pomocí funkce AVG( ) se sloupcem price.

Hodnoty z jednotlivých řádků nelze zobrazit. Pokud například seskupíte jenom podle vydavatele, nemůžete v dotazu zobrazit ani jednotlivé názvy. Pokud tedy do výstupu dotazu přidáte sloupce, nástroje Návrháře dotazů a zobrazení (Visual Database Tools) je automaticky přidá do GROUP BY klauzule příkazu v podokně SQL (Visual Database Tools). Pokud chcete místo toho agregovat sloupec, můžete pro něj zadat agregační funkci.

Pokud seskupíte podle více než jednoho sloupce, zobrazí každá skupina v dotazu agregované hodnoty pro všechny sloupce seskupení.

Například následující dotaz na titles tabulky seskupuje podle vydavatele (pub_id) a také podle typu knihy (type). Výsledky dotazu jsou seřazené podle vydavatele a zobrazují souhrnné informace pro každý jiný typ knihy, kterou vydavatel vytvoří:

SELECT pub_id,
       type,
       SUM(price) AS Total_price
FROM titles
GROUP BY pub_id, type;

Výsledný výstup může vypadat takto:

Snímek obrazovky s výsledky dotazu: ceny seskupené podle vydavatele a typu

Seskupovat řádky

  1. Začněte dotaz přidáním tabulek, které chcete shrnout do podokna Diagram.

  2. Klikněte pravým tlačítkem myši na pozadí podokna Diagram a v místní nabídce zvolte Přidat skupinu podle. Návrhář dotazu a zobrazení přidá sloupec Seskupit podle do mřížky v podokně Kritéria.

  3. Přidejte sloupec nebo sloupce, které chcete seskupit, do podokna Kritéria. Pokud chcete, aby se sloupec zobrazoval ve výstupu dotazu, ujistěte se, že je pro výstup vybraný sloupec Výstup.

    Návrhář dotazu a zobrazení přidá GROUP BY do příkazu v podokně SQL klauzuli. Například příkaz SQL může vypadat takto:

    SELECT pub_id
    FROM titles
    GROUP BY pub_id;
    
  4. Přidejte sloupec nebo sloupce, které chcete agregovat, do podokna Kritéria. Ujistěte se, že je sloupec označen pro výstup.

  5. Ve sloupci, který se má agregovat, vyberte v buňce mřížky Seskupit podle příslušnou agregační funkci.

    Návrhář dotazů a zobrazení automaticky přiřadí alias sloupce, který sumarizujete. Tento automaticky vygenerovaný alias můžete nahradit smysluplnějším aliasem. Další podrobnosti najdete v tématu Vytváření aliasů sloupců (Visual Database Tools).

    Snímek obrazovky s přidáním aliasu sloupce do sady výsledků dotazu

    Odpovídající příkaz v podokně SQL může vypadat takto:

    SELECT pub_id,
           SUM(price) AS Totalprice
    FROM titles
    GROUP BY pub_id;