Jak korzystać z klauzuli HAVING MySQL, gdy suma jest większa niż próg

Jak Korzystac Z Klauzuli Having Mysql Gdy Suma Jest Wieksza Niz Prog



Podczas pracy z bazą danych MySQL często będziesz mieć przypadki, w których chcesz filtrować wartości. Chociaż możesz użyć klauzuli WHERE, nie zawsze działa ona we wszystkich przypadkach. Klauzula HAVING jest używana, gdy chcesz wykonać zapytanie filtrujące przy użyciu funkcji agregującej i zastosować grupowanie.

Klauzula HAVING opiera się na klauzuli GROUP BY w swoim filtrze i wykonuje zapytanie na podstawie podanego warunku. Ogranicza filtr na podstawie warunku i zwraca tylko wybrane grupy, jeśli spełniają warunek. Mamy przykłady użycia klauzuli MySQL HAVING, gdzie suma przekracza próg. W ten sposób opanujesz, jak go używać na końcu dzisiejszego wpisu.







Jak korzystać z klauzuli HAVING MySQL, gdy suma jest większa niż próg

Stosujesz klauzulę MySQL HAVING z klauzulą ​​GROUP BY. Jego składnia jest następująca:



SELECT wyrażenie1, .. wyrażenie_n, funkcja agregatu (wyrażenie) FROM nazwa_tabeli GROUP BY wyrażenie HAVING ;

Możesz użyć różnych funkcji agregujących, w tym SUMA(), COUNT(), MIN(), MAX() i AVG(). Należy zauważyć, że każde wyrażenie, które nie jest używane z funkcją agregującą, musi być wymienione w klauzuli GROUP BY.



Jeśli chodzi o warunek, jest on stosowany do zagregowanych wyników, w których określasz próg, który chcesz sprawdzić za pomocą warunku. Na przykład możesz zastosować funkcję SUMA() i sprawdzić, czy wyrażenie spełnia próg 10. Więcej informacji na ten temat uzyskamy w podanych przykładach.





Aby zrozumieć, jak działa klauzula HAVING, utwórzmy przykładową bazę danych, z którą będziemy pracować. Nazywamy naszą bazę danych „rejestrem”.



Utwórzmy również tabelę o nazwie „pracownicy”, aby zawierała nasze różne kolumny i typy danych. Tutaj pracujemy z danymi pracowników, takimi jak imię i nazwisko, godziny, data pracy itp.

Sprawdzając opis naszej tabeli, możemy potwierdzić, że wszystkie kolumny zostały pomyślnie utworzone.

Wstawiamy wartości do naszej tabeli. Mamy różnych pracowników, którzy pracują w różnych godzinach i dniach. Korzystając z tych danych, możemy zastosować klauzulę HAVING, gdy suma przekracza próg.

W naszym pierwszym przykładzie rozważmy przypadek, w którym chcemy znaleźć pracowników, którzy przepracowali najwięcej godzin. W przypadku klauzuli HAVING uwzględnij funkcję agregującą sumę dla godzin. W klauzuli GROUP BY grupujemy wiersze przy użyciu wiersza nazwy, aby ułatwić klasyfikowanie pracowników, których łączna liczba godzin jest większa niż próg.

Jeśli nasz próg dla łącznej liczby godzin wynosi 7, wykonujemy nasze polecenie w następujący sposób:

WYBIERZ nazwisko, SUMA(godzin) AS total_hours_per_person FROM pracownicy GROUP BY name HAVING sum(hours) > 7;

Wykonując polecenie, otrzymujemy dane wyjściowe zawierające dwa wiersze, ponieważ tylko dwóch procesów roboczych przekroczyło próg określony w klauzuli HAVING.

Załóżmy, że chcemy sklasyfikować działy, aby zobaczyć te z pracownikami, którzy pracują w godzinach większych niż próg 7 godzin. Wybieramy dział, a następnie używamy funkcji agregującej SUM z godzinami i grupujemy wiersze za pomocą wyrażenia dział.

Nasze polecenie brzmi następująco:

WYBIERZ dział, SUMA(godzin) AS total_hours_per_department FROM pracownicy GROUP BY departament HAVING sum(hours) > 7;

Na podstawie wyników możemy zweryfikować, czy udało nam się odfiltrować wiersze, pozostawiając tylko te, których suma godzin jest większa niż nasz próg.

Podobnie, jeśli chcemy przefiltrować datę pracy z największą liczbą pracujących pracowników przekraczającą próg 10 godzin, wybieramy wyrażenie data pracy. Następnie używamy funkcji SUMA z godzinami i grupujemy wiersze według daty roboczej.

Polecenie jest następujące:

WYBIERZ datę pracy, SUMA(godziny) AS najwyższa_godzina_pracy OD pracowników GROUP BY data pracy MAJĄC sumę(godzin) > 10;

Po wykonaniu polecenia wyniki pokazują, że tylko jedna data pracy ma swoją sumę godzin, które przekraczają próg:

Wniosek

Klauzula MySQL HAVING jest używana, gdy chcesz wykonać zapytanie filtrujące przy użyciu funkcji agregującej. Jest ona połączona z klauzulą ​​GROUP BY w celu wykonania bardziej szczegółowego zapytania. Ten post szczegółowo opisał klauzulę MySQL HAVING, w której suma jest większa niż próg. Dzięki podanym przykładom rozumiesz teraz, jak pracować z klauzulą ​​MySQL HAVING.