logo

Klauzula posiadania a klauzula Where w SQL

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>

HAVING>total>70>

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.