W niektórych przypadkach możesz napotkać przypadki, w których musisz filtrować rekordy z bazy danych za pomocą klauzuli Where. Pozwala to określić określony warunek i zastosować tylko akcje ustawione do wierszy, które pasują do warunków.
Innym typowym przypadkiem użycia jest to, że musisz zastosować filtr do grupy rekordów jako jedna jednostka. W tym miejscu pojawia się klauzula posiadająca. Jest podobny do klauzuli Where, ale może być zastosowany do wyniku zagregowanego.
Jaka jest różnica?
Jest tylko jedna różnica między tym, gdzie a klauzulami:
- Klauzula, w której stosuje się do poszczególnych wierszy w tabeli.
- Z drugiej strony klauzula posiadana jest do grupy wierszy, które spełniają określony warunek. Możesz także użyć klauzuli posiadania w funkcji łącznej.
Gdzie przykład klauzuli
Rozważ tabelę pracowników zawierających przykładowe dane, jak przedstawiono w poniższych oświadczeniach:
Utwórz pracowników tabeli (
ID szeregowy klucz podstawowy,
Full_name Varchar (255),
e -mail varchar (255),
Departament Varchar (100),
data start_date,
Aktywny bool,
kategoria varchar (50)
);
Wstaw do pracowników (Full_name, e -mail, dział, start_date, aktywny, kategoria)
Wartości
(„Meghan Edwards”, „
[email protected] ', „Game Development”, „2016-06-22”, True, „Dev-G1”),
(„Sam Davis”, „
[email protected] ', „Game Development”, „2014-01-04”, false, „dev-g1”),
(„Taylor Miller”, „
[email protected] ', „Game Development”, „2019-10-06”, True, „Dev-G1”),
(„Wilson Smitty”, „Smitty_wilson@przykład.net ', „baza danych programista”, „2016-12-23”, true, „dev-db1”),
(„Barbara Moore”, „
[email protected] „,„ Dewabase Developer ”,„ 2015-12-23 ”, true,„ dev-db1 ”),
(„Raj Chan”, „
[email protected] ', „Database Developer”, „2017-12-23”, false, „dev-db1”),
(„Susan Brown”, „
[email protected] ', „DevOps Engineer”, „2011-12-23”, true, „dev-ups1”),
(„Marial Anderson”, „Anderson@przykład.Org ', „DevOps Engineer”, „2015-12-23”, true, „dev-ups1”),
(„Nancy Thomas”, „
[email protected] ', „DevOps Engineer”, „2014-12-23”, false, „dev-ups1”);
Możemy użyć wybierz z klauzulą Where, aby pobrać wiersze, w których kategoria jest równa „Dev-OPS-1”.
Przykładowym wyrażeniem jest jak pokazano:
WYBIERAĆ *
Od pracowników
Gdzie kategoria = „dev-ups1”;
Powyższe zapytanie jest stosowane na podstawie rządu na rząd i zwraca zestaw wyników, jak pokazano:
Posiadanie przykładu klauzuli
Jak wspomniano, klauzula posiadana jest na kruszywa. Na przykład rozważ tabelę z przykładowymi danymi, jak pokazano w zapytaniu poniżej:
Utwórz tabelę youtube_stats (
ID Serial,
Channel_id varchar (50),
video_id varchar (50),
views_count int
);
Wstaw do youtube_stats (channel_id, video_id, views_count)
Wartości
(„Chan1”, „vid1”, 100000),
(„Chan1”, „vid2”, 500000),
(„Chan2”, „vid1”, 400000),
(„Chan2”, „vid2”, 1000000),
(„Chan3”, „vid1”, 800000),
(„Chan4”, „vid1”, 262529);
Możemy użyć klauzuli agregatowych, jak pokazano:
Wybierz ID,
ID KANAŁU,
Video_id,
Sum (views_count) jako total_views
Z youtube_stats
Grupa przez kanał_d
Posiadanie Total_Views> = 100000
Powyższe zapytanie powinno zwrócić tylko elementy, w których suma jest większa lub równa powyższemu warunku.