Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky
kde klauzula
* Účel: Filtre riadky pred Akékoľvek agregačné operácie (napríklad `sum`,` avg`, `count` atď.).
* sa vzťahuje na: Jednotlivé riadky.
* Podmienky: Zvyčajne zahŕňajú porovnania a logických operátorov, ktoré pracujú na jednotlivých stĺpcoch v tabuľke.
* Príklad:
`` sql
Vyberte * od zákazníkov, kde country ='USA';
`` `
Tento dotaz načíta všetkých zákazníkov zo tabuľky „zákazníkov“, kde sa stĺpec „krajina“ rovná „USA“.
s klauzuli
* Účel: Filtre riadky po agregácia operácií.
* sa vzťahuje na: Výsledky agregácie (skupina By).
* Podmienky: Typicky zahŕňajú porovnania agregovaných hodnôt pomocou agregovaných funkcií (napr. `Sum (cena)`, `avg (vek)`, `count (*)`) v kombinácii s logickými operátormi.
* Príklad:
`` sql
Vyberte City, AVG (vek) ako priemer_age
Od zákazníkov
Skupina od mesta
Mať priemer_age> 30;
`` `
Tento dotaz zoskupuje zákazníkov podľa „mesta“ a vypočítava priemerný vek pre každé mesto. Potom filtruje výsledky, aby ukázali iba mestá, v ktorých je priemerný vek vyšší ako 30.
Kľúčové rozdiely v skratke:
* načasovanie: „Kde“ Filtre pred agregáciou, „majú“ filtre po.
* rozsah: `Kde„ pracuje na jednotlivých riadkoch, „mať“ pracuje na agregovaných výsledkoch.
* Podmienky: `Kde„ používa podmienky na jednotlivých stĺpcoch, „mať“ podmienky na agregované hodnoty.
Kedy použiť každú klauzulu:
* Použite „kde“, keď chcete filtrovať údaje na základe jednotlivých hodnôt riadkov pred agregáciou.
* Použite „mať“, keď chcete filtrovať agregované výsledky (napríklad zoskupené údaje) na základe podmienok zahŕňajúcich agregované hodnoty.
Poznámka: Môžete použiť „kde“ aj `klauzuly s` klauzuly v rovnakom dotaze, ale „kde“ sa použije najskôr na filtrovanie riadkov používaných na agregáciu a potom sa „má“ používa na filtrovanie agregovaných výsledkov.