Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
van toepassing op:SQL Server-
Wanneer u aggregatiequery's maakt, maakt het Hulpprogramma voor Query en View Designer (Visual Database Tools) bepaalde aannames om een geldige query te kunnen construeren. Als u bijvoorbeeld een aggregatiequery maakt en een gegevenskolom markeert voor uitvoer, maakt de Query- en Weergaveontwerper automatisch de kolom onderdeel van de GROUP BY-clausule, zodat u niet per ongeluk probeert de inhoud van een afzonderlijke rij in een samenvatting weer te geven.
Gebruik 'Group By'-functie
De ontwerpfunctie voor query's en weergaven gebruikt de volgende richtlijnen voor het werken met kolommen:
Wanneer u de optie Groeperen op kiest of een statistische functie toevoegt aan een query, worden alle kolommen die zijn gemarkeerd voor uitvoer of voor sortering automatisch toegevoegd aan de
GROUP BYcomponent. Kolommen worden niet automatisch toegevoegd aan deGROUP BYclausule als ze al deel uitmaken van een aggregatiefunctie.Als u niet wilt dat een bepaalde kolom deel uitmaakt van de
GROUP BYcomponent, moet u deze handmatig wijzigen door een andere optie te selecteren in de kolom Groeperen op van het deelvenster Criteria. De ontwerpfunctie voor query's en weergaven voorkomt echter niet dat u een optie kiest die kan resulteren in een query die niet wordt uitgevoerd.Als u handmatig een queryuitvoerkolom toevoegt aan een aggregatiefunctie in het deelvenster Criteria of het SQL-deelvenster, worden andere uitvoerkolommen niet automatisch uit de query verwijderd. Daarom moet u de resterende kolommen verwijderen uit de query-uitvoer of ze onderdeel maken van de
GROUP BYcomponent of van een statistische functie.
Wanneer u een zoekvoorwaarde invoert in de kolom Filter van het deelvenster Criteria, volgt de query- en weergaveontwerper de volgende regels:
Als de kolom Group By van het raster niet wordt weergegeven (omdat u nog geen aggregatiequery hebt opgegeven), wordt de zoekvoorwaarde in de
WHEREclausule geplaatst.Als u al een samenvattende query hebt en de optie Waar in de kolom Groeperen op hebt geselecteerd, wordt de zoekvoorwaarde in de
WHEREclausule geplaatst.Als de kolom Group By een andere waarde bevat dan Waar, wordt de zoekvoorwaarde in de
HAVINGcomponent geplaatst.
De HAVING- en WHERE-componenten gebruiken
In de volgende principes wordt beschreven hoe u kunt verwijzen naar kolommen in een statistische query in zoekvoorwaarden. Over het algemeen kunt u een kolom in een zoekvoorwaarde gebruiken om de rijen te filteren die moeten worden samengevat (een WHERE component) of om te bepalen welke gegroepeerde resultaten worden weergegeven in de uiteindelijke uitvoer (een HAVING component).
Afzonderlijke gegevenskolommen kunnen worden weergegeven in de
WHEREofHAVINGcomponent, afhankelijk van hoe ze elders in de query worden gebruikt.WHEREvoorwaarden worden gebruikt om een subset van rijen te selecteren voor het samenvatten en groeperen en worden dus toegepast voordat er wordt gegroepeerd. Daarom kunt u een gegevenskolom in eenWHEREcomponent gebruiken, zelfs als deze geen deel uitmaakt van deGROUP BYcomponent of deel uitmaakt van een statistische functie. Met de volgende instructie worden bijvoorbeeld alle titels geselecteerd die meer dan $ 10,00 kosten en wordt de gemiddelde prijs berekend.SELECT AVG(price) FROM titles WHERE price > 10;Als u een zoekvoorwaarde maakt waarbij een kolom ook wordt gebruikt in een
GROUP BYcomponent of statistische functie, kan de zoekvoorwaarde worden weergegeven als eenWHEREcomponent of eenHAVINGcomponent. U kunt bepalen welke voorwaarde u moet maken wanneer u de voorwaarde maakt. De volgende instructie maakt bijvoorbeeld een gemiddelde prijs voor de titels voor elke uitgever en geeft vervolgens het gemiddelde weer voor de uitgevers waarin de gemiddelde prijs hoger is dan $ 10,00:SELECT pub_id, AVG(price) FROM titles GROUP BY pub_id HAVING (AVG(price) > 10);Als u een statistische functie in een zoekvoorwaarde gebruikt, omvat de voorwaarde een samenvatting en moet deze daarom deel uitmaken van de
HAVINGcomponent.