Klauzula PostgreSQL jest ściśle używana w połączeniu z grupą według stwierdzenia, ograniczając wynik tylko do wierszy spełniających warunek klauzuli posiadania.
Podstawowe użycie
Najbardziej podstawową składnią do klauzuli posiadania jest:
Wybierz col_list z grupy nazwy Table_name według pułkownika posiadającego warunek;W składni wyrażonej powyżej klauzula posiadająca grupy, a następnie grupa według klauzuli sortuje je według określonej kolumny.
Oznacza to, że tylko kolumny spełniające warunek klauzuli posiadają klauzulę w grupie.
Klauzula posiadająca niższy priorytet niż inne klauzule, takie jak select, gdzie i grupa według.
Jeśli chcesz dołączyć oświadczenie według zapytania w zapytaniu, upewnij się, że dodaj je po klauzuli, ponieważ ma ona niższy priorytet niż klauzula posiadająca.
Przykład 1
Zilustrujmy, jak korzystać z klauzuli posiadania przy użyciu przykładowego przykładu. Do tej ilustracji użyjemy bazy danych Sakila.
Wybierz Film_id, tytuł, wydanie_year, długość grupy filmowej według filmu_id o sumie (długość)> 150 limit 10;W powyższym przykładzie wybieramy określone kolumny z tabeli folii, w której suma długości każdego filmu jest większa niż 150.
Powyższe zapytanie powinno zwrócić tylko filmy, w których długość była większa niż 150 pogrupowana według filmu_id.
Oto przykład wyjścia:
Przykład 2
Możemy również użyć klauzuli posiadania z innymi funkcjami zagregowanymi. Przykładem są funkcje min i maksymalne.
Wybierz Payment_ID, Customer_ID, kwota z grupy płatności według płatności_id mającą maksymalną (kwotę)> 10 limitów 5;Powyższe zapytanie powinno zwrócić wartości, w których kwota jest większa niż 10.
Przykład 3
Możesz także użyć klauzuli posiadania z klauzulą Where. Na przykład:
Wybierz płatność_id,W takim przypadku grupujemy według płatności_idłowej wszystkie rekordy, których maksymalna wartość jest mniejsza niż 5, a identyfikator wynajmu jest większy niż 10000 (określony przez klauzulę Where).
W podsumowaniu
Klauzula PostgreSQL umożliwia filtrowanie wyników, które spełniają określony warunek zagregowany.