Jak používat klauzuli MySQL HAVING, kde je součet větší než práh

Jak Pouzivat Klauzuli Mysql Having Kde Je Soucet Vetsi Nez Prah



Při práci s databází MySQL se často setkáte s případy, kdy chcete hodnoty filtrovat. I když můžete použít klauzuli WHERE, ne vždy to funguje pro všechny instance. Klauzule HAVING se používá, když chcete provést dotaz filtru pomocí agregační funkce a použít seskupení.

Klauzule HAVING spoléhá na klauzuli GROUP BY ve svém filtru a provádí dotaz na základě poskytnuté podmínky. Omezí filtr na základě podmínky a vrátí pouze vybrané skupiny, pokud podmínku splňují. Máme příklady použití klauzule MySQL HAVING, kde součet překračuje práh. Tímto způsobem se naučíte, jak jej používat na konci dnešního příspěvku.







Jak používat klauzuli MySQL HAVING, kde je součet větší než práh

Klauzuli MySQL HAVING použijete s klauzulí GROUP BY. Jeho syntaxe je následující:



SELECT výraz1, .. výraz_n, agregační_funkce (výraz) FROM název_tabulky GROUP BY výraz HAVING ;

Můžete použít různé agregační funkce včetně SUM(), COUNT(), MIN(), MAX() a AVG(). Všimněte si, že jakýkoli výraz, který není použit s agregační funkcí, musí být uveden v klauzuli GROUP BY.



Pokud jde o podmínku, použije se na agregované výsledky, kde zadáte práh, který chcete pomocí podmínky zkontrolovat. Můžete například použít funkci SUM() a ověřit, zda výraz splňuje práh 10. Více o tom porozumíme v poskytnutých příkladech.





Abychom pochopili, jak klauzule HAVING funguje, vytvořte si vzorovou databázi, se kterou budeme pracovat. Naší databázi nazýváme „registrovat“.



Vytvořme také tabulku s názvem „pracovníci“, která bude obsahovat naše různé sloupce a datové typy. Zde pracujeme s daty pracovníků, jako je jméno, hodiny, pracovní datum atd.

Kontrolou popisu naší tabulky můžeme potvrdit, že všechny sloupce jsou úspěšně vytvořeny.

Hodnoty vložíme do naší tabulky. Máme různé pracovníky, kteří pracují v různé hodiny a dny. Pomocí těchto dat můžeme použít klauzuli HAVING tam, kde součet překročí práh.

Pro náš první příklad uvažujme případ, kdy chceme najít pracovníky, kteří odpracovali nejvíce hodin. U klauzule HAVING zahrňte agregační funkci součtu pro hodiny. V klauzuli GROUP BY seskupujeme řádky pomocí řádku názvu, abychom pomohli klasifikovat pracovníky s celkovým počtem hodin, který je větší než prahová hodnota.

Pokud máme náš práh pro celkový počet hodin 7, provedeme náš příkaz následovně:

SELECT jméno, SUM(hodiny) AS celkem_hodin_na_osobu FROM pracovníků GROUP BY jméno HAVING suma(hodiny) > 7;

Spuštěním příkazu získáme výstup, který obsahuje dva řádky, protože pouze dva pracovníci překročili práh, který je uveden v klauzuli HAVING.

Předpokládejme, že chceme klasifikovat oddělení, abychom viděli ty s pracovníky, kteří pracují po dobu delší než 7 hodin. Vybereme oddělení, poté použijeme agregační funkci SUM s hodinami a seskupíme řádky pomocí výrazu oddělení.

Náš příkaz je následující:

SELECT oddělení, SUM(hodiny) AS celkem_hodin_na_oddělení FROM pracovníků GROUP BY oddělení HAVING součet(hodin) > 7;

Z výsledků si můžeme ověřit, že se nám podařilo vyfiltrovat řádky tak, aby zůstaly pouze ty, jejichž součet hodin je vyšší než náš práh.

Podobně, pokud chceme filtrovat pracovní datum s nejvyšším počtem pracujících tak, aby překročilo práh 10 hodin, vybereme výraz pracovní datum. Poté použijeme funkci SUM s hodinami a seskupíme řádky podle pracovního data.

Příkaz je následující:

SELECT pracovní datum, SUM(hodiny) AS nejvyšší_odpracovaný_hodin FROM pracovníci GROUP BY pracovní datum HAVING součet(hodiny) > 10;

Po provedení příkazu výsledky ukazují, že pouze jedno pracovní datum má součet celkových hodin, které překračují prahovou hodnotu:

Závěr

Klauzule MySQL HAVING se používá, když chcete provést dotaz filtru pomocí agregační funkce. Je kombinován s klauzulí GROUP BY pro provedení specifičtějšího dotazu. Tento příspěvek podrobně popsal vše o klauzuli MySQL HAVING, kde je součet větší než práh. S poskytnutými příklady nyní rozumíte, jak pracovat s klauzulí MySQL HAVING.