Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
gäller för:SQL Server
När du skapar aggregerade frågor gör fråge- och vydesignerverktygen (Visual Database Tools) vissa antaganden så att den kan konstruera en giltig fråga. Om du till exempel skapar en aggregeringsfråga och markerar en datakolumn för utdata, gör fråge- och vydesignern automatiskt kolumnen till en del av GROUP BY satsen så att du inte oavsiktligt försöker visa innehållet i en enskild rad i en sammanfattning.
Använd gruppera efter
Fråge- och vydesignern använder följande riktlinjer för att arbeta med kolumner:
När du väljer alternativet Gruppera efter eller lägger till en mängdfunktion i en fråga läggs alla kolumner som markerats för utdata eller används för sortering automatiskt till i
GROUP BY-satsen. Kolumner läggs inte automatiskt till iGROUP BY-satsen om de redan ingår i en mängdfunktion.Om du inte vill att en viss kolumn ska ingå i satsen måste du ändra den
GROUP BYmanuellt genom att välja ett annat alternativ i kolumnen Gruppera efter i fönstret Villkor. Men fråge- och vydesignern hindrar dig inte från att välja ett alternativ som kan resultera i en fråga som inte körs.Om du manuellt lägger till en frågeutdatakolumn i en aggregeringsfunktion i antingen villkors- eller SQL-fönstret, tar fråge- och vydesignern inte automatiskt bort andra utdatakolumner från frågan. Därför måste du ta bort de återstående kolumnerna från frågeutdata eller göra dem till en del av
GROUP BYsatsen eller en mängdfunktion.
När du anger ett sökvillkor i kolumnen Filter i fönstret Villkor följer fråge- och vydesignern följande regler:
Om kolumnen Gruppera efter i rutnätet inte visas (eftersom du ännu inte har angett en aggregeringsfråga) placeras sökvillkoret
WHEREi -satsen.Om du redan är i en aggregeringsfråga och har valt alternativet Var i kolumnen Gruppera efter placeras sökvillkoret
WHEREi -satsen.Om kolumnen Gruppera efter innehåller något annat värde än Where placeras sökvillkoret
HAVINGi -satsen.
Använda satserna HAVING och WHERE
Följande principer beskriver hur du kan referera till kolumner i en aggregeringsfråga i sökvillkor. I allmänhet kan du använda en kolumn i ett sökvillkor för att filtrera de rader som ska sammanfattas (en WHERE sats) eller för att avgöra vilka grupperade resultat som visas i de slutliga utdata (en HAVING sats).
Enskilda datakolumner kan visas i
WHEREsatsen ellerHAVINGberoende på hur de används någon annanstans i frågan.WHERE-satser används för att välja en delmängd rader för sammanfattning och gruppering och tillämpas därför innan någon gruppering görs. Därför kan du använda en datakolumn i enWHERE-sats även om denGROUP BYinte är en del av satsen eller finns i en mängdfunktion. Till exempel väljer följande uttalande alla titlar som kostar mer än $10,00 och beräknar medelpriset.SELECT AVG(price) FROM titles WHERE price > 10;Om du skapar ett sökvillkor som omfattar en kolumn som också används i en
GROUP BYsats eller aggregeringsfunktion kan sökvillkoret visas som antingen enWHEREsats eller enHAVINGsats – du kan bestämma vilket när du skapar villkoret. Följande instruktion skapar till exempel ett genomsnittligt pris för titlarna för varje utgivare och visar sedan medelvärdet för de utgivare där det genomsnittliga priset är större än 10,00 USD:SELECT pub_id, AVG(price) FROM titles GROUP BY pub_id HAVING (AVG(price) > 10);Om du använder en aggregeringsfunktion i ett sökvillkor innehåller villkoret en sammanfattning och måste därför ingå i
HAVING-satsen.