Delen via


Rijen groeperen in queryresultaten (Hulpmiddelen voor visuele databases)

van toepassing op:SQL Server-

Als u subtotalen wilt maken of andere samenvattingsgegevens voor subsets van een tabel wilt weergeven, maakt u groepen met behulp van een statistische query. Elke groep bevat een overzicht van de gegevens voor alle rijen in de tabel met dezelfde waarde.

U wilt bijvoorbeeld de gemiddelde prijs van een boek in de tabel titles zien, maar de resultaten opsplitsen per uitgever. Hiervoor groepeer u de query op uitgever (bijvoorbeeld pub_id). De resulterende queryuitvoer kan er als volgt uitzien:

Schermopname van queryresultaten: gemiddelde prijs gegroepeerd per uitgever.

Wanneer u gegevens groeperen, kunt u alleen samenvattings- of gegroepeerde gegevens weergeven, zoals:

  • De waarden van de gegroepeerde kolommen (de kolommen die in de GROUP BY component worden weergegeven). In het bovenstaande voorbeeld is pub_id de gegroepeerde kolom.

  • Waarden die worden geproduceerd door statistische functies zoals SUM( ) en AVG( ). In het bovenstaande voorbeeld wordt de tweede kolom geproduceerd met behulp van de functie AVG( ) met de kolom price.

U kunt geen waarden uit afzonderlijke rijen weergeven. Als u bijvoorbeeld alleen groeperen op uitgever, kunt u niet ook afzonderlijke titels in de query weergeven. Als u daarom kolommen toevoegt aan de queryuitvoer, worden deze automatisch toegevoegd aan de GROUP BY component van de instructie in het SQL-deelvenster (Visual Database Tools) met de Hulpmiddelen voor Query en View Designer (Visual Database Tools). Als u in plaats daarvan een kolom wilt aggregeren, kunt u een statistische functie voor die kolom opgeven.

Als u groepeert op meer dan één kolom, worden in elke groep in de query de geaggregeerde waarden voor alle groeperingskolommen weergegeven.

Tegen de titles-tabel groepeert bijvoorbeeld de volgende query per uitgever (pub_id) en op boektype (type). De queryresultaten worden gesorteerd op uitgever en bevatten samenvattingsinformatie voor elk ander type boek dat de uitgever produceert:

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

De resulterende uitvoer kan er als volgt uitzien:

Schermopname van queryresultaten: prijs gegroepeerd op uitgever en type.

Rijen groeperen

  1. Start de query door de tabellen toe te voegen die u wilt samenvatten in het deelvenster Diagram.

  2. Klik met de rechtermuisknop op de achtergrond van het deelvenster Diagram en kies vervolgens Groep toevoegen op in het snelmenu. De query- en weergaveontwerper voegt een Group By-kolom toe aan de tabel in het deelvenster Criteria.

  3. Voeg de kolom of kolommen die u wilt groeperen toe aan het deelvenster Criteria. Als u wilt dat de kolom wordt weergegeven in de queryuitvoer, moet u ervoor zorgen dat de kolom Uitvoer is geselecteerd voor uitvoer.

    De ontwerpfunctie voor query's en weergaven voegt een GROUP BY component toe aan de instructie in het SQL-deelvenster. De SQL-instructie kan er bijvoorbeeld als volgt uitzien:

    SELECT pub_id
    FROM titles
    GROUP BY pub_id;
    
  4. Voeg de kolom of kolommen die u wilt samenvoegen toe aan het deelvenster Criteria. Zorg ervoor dat de kolom is gemarkeerd voor uitvoer.

  5. Selecteer in de Group By rastercel voor de kolom die wordt geaggregeerd, de juiste aggregatiefunctie.

    De ontwerpfunctie voor query's en weergaven wijst automatisch een kolomalias toe aan de kolom die u samenvat. U kunt deze automatisch gegenereerde alias vervangen door een zinvollere alias. Zie Kolomaliassen maken (Visual Database Tools) voor meer informatie.

    Schermopname van het toevoegen van een kolomalias aan de queryresultatenset.

    De bijbehorende instructie in het deelvenster SQL ziet er mogelijk als volgt uit:

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