Megosztás a következőn keresztül:


Sorok csoportosítása a lekérdezési eredményekben (Visual Database Tools)

A következőkre vonatkozik:SQL Server

Ha részösszegeket szeretne létrehozni, vagy más összefoglaló információkat szeretne megjeleníteni egy tábla részhalmazaihoz, csoportokat hozhat létre összesítő lekérdezéssel. Minden csoport összegzi a táblázat összes olyan sorának adatait, amelyek azonos értékkel rendelkeznek.

Előfordulhat például, hogy szeretné látni egy könyv átlagos árát a titles táblában, de az eredményeket kiadó szerint bontja le. Ehhez a lekérdezést közzétevő szerint csoportosíthatja (például pub_id). Az eredményként kapott lekérdezés kimenete a következőképpen nézhet ki:

Képernyőkép a lekérdezés eredményeiről: közzétevő szerint csoportosított átlagos ár.

Az adatok csoportosításakor csak összefoglaló vagy csoportosított adatokat jeleníthet meg, például:

  • A csoportosított oszlopok (a záradékban GROUP BY megjelenő) értékei. A fenti példában pub_id a csoportosított oszlop.

  • Az olyan összesítő függvények által előállított értékek, mint a SZUM( ) és az AVG( ). A fenti példában a második oszlop az AVG() függvény és a price oszlop használatával jön létre.

Az egyes sorok értékei nem jeleníthetők meg. Ha például csak közzétevő szerint csoportosít, akkor nem jeleníthet meg egyéni címeket a lekérdezésben. Ezért ha oszlopokat ad hozzá a lekérdezés kimenetéhez, a Lekérdezés- és nézettervező eszközök (Visual Database Tools) automatikusan hozzáadja őket az GROUP BYSQL-panelen (Visual Database Tools) található utasítás záradékához. Ha ehelyett egy oszlopot szeretne összesíteni, megadhat egy aggregátumfüggvényt az adott oszlophoz.

Ha egynél több oszlop szerint csoportosít, a lekérdezés minden csoportja az összes csoportosítási oszlop összesített értékeit jeleníti meg.

A következő lekérdezés például a titles táblán csoportosít kiadó (pub_id) és a könyvtípus (type) szerint is. A lekérdezési eredményeket a közzétevő rendezi, és összesítő információkat jelenít meg a közzétevő által előállított különböző könyvtípusokról:

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

Az eredmény a következőhöz hasonló lehet:

Képernyőkép a lekérdezés eredményeiről: közzétevő és típus szerint csoportosított ár.

Sorok csoportosítása

  1. Indítsa el a lekérdezést úgy, hogy hozzáadja az összesíteni kívánt táblákat a Diagram panelhez.

  2. Kattintson a jobb gombbal a Diagram panel hátterére, majd válassza a Csoport hozzáadása opciót a helyi menüből. A Lekérdezés- és nézettervező hozzáad egy Csoportosítás oszlopot a feltételpanel rácsához.

  3. Adja hozzá a csoportosítani kívánt oszlopot vagy oszlopokat a Feltételek panelhez. Ha azt szeretné, hogy az oszlop megjelenjen a lekérdezés kimenetében, győződjön meg arról, hogy a Kimenet oszlop van kiválasztva a kimenethez.

    A Lekérdezés- és nézettervező hozzáad egy záradékot GROUP BY az SQL-panelen található utasításhoz. Az SQL-utasítás például így nézhet ki:

    SELECT pub_id
    FROM titles
    GROUP BY pub_id;
    
  4. Adja hozzá az összesíteni kívánt oszlopot vagy oszlopokat a Feltételek panelhez. Győződjön meg arról, hogy az oszlop kimenetként van megjelölve.

  5. A Csoportosítás rácscellájában az összesíteni kívánt oszlophoz válassza ki a megfelelő összesítő függvényt.

    A Lekérdezés- és nézettervező automatikusan hozzárendel egy oszlop aliast az összegző oszlophoz. Ezt az automatikusan létrehozott aliast lecserélheti egy értelmesebbre. További részletekért lásd: Oszlop aliasok létrehozása (Visual Database Tools).

    Képernyőkép egy oszlop aliasának a lekérdezés eredményhalmazához való hozzáadásáról.

    A SQL panel megfelelő utasítása a következőképpen nézhet ki:

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