Różnica między klauzulami Have i Where w SQL polega na tym, że klauzula Where cann ot można używać z agregatami, ale klauzula posiadająca może.
The Gdzie Klauzula działa na danych wierszowych, a nie na danych zagregowanych. Rozważmy poniższą tabelę „Znaki”.
Wynik kursu dla studentów
c1 40
c2 50
bc3 60
dc1 70
e c2 80
Rozważ zapytanie
SELECT>Student, Score FROM Marks WHERE Score>=40>> |
Spowoduje to wybranie wiersza danych wiersz po wierszu.
The mający klauzula działa na danych zagregowanych.
Na przykład wynik poniższego zapytania
SELECT>Student,>SUM>(score) AS>>total>FROM>Marks> GROUP BY>Student> |
Suma studencka
90
b 60
d 70
i 80
Kiedy zastosujemy posiadanie w powyższym zapytaniu, otrzymamy
SELECT>Student,>SUM>(score) AS>>total>FROM>Marks> GROUP BY>Student>
|
Suma studencka
90
i 80
Uwaga: nie jest to z góry zdefiniowana reguła, ale w dużej liczbie zapytań SQL używamy WHERE przed GROUP BY i HAVING po GROUP BY. Klauzula Where pełni funkcję a filtr wstępny gdzie jako Mając jako a filtr postu.