logo

Речення Having vs Where у SQL

Різниця між пропозиціями having і where у SQL полягає в тому, що пропозиція where cann от можна використовувати з агрегатами, але речення having може.

The де речення працює з даними рядка, а не зі зведеними даними. Розглянемо нижче таблицю «Оцінки».



Оцінка студента за курс

a c1 40

a c2 50



b c3 60

d c1 70

e c2 80



Розглянемо запит

SELECT>Student, Score FROM Marks WHERE Score>=40>>

Це призведе до вибору даних рядок за рядком.

The мати пункт працює на агрегованих даних.

Наприклад, вихід наведеного нижче запиту

SELECT>Student,>SUM>(score) AS>>total>FROM>Marks> GROUP BY>Student>

Учень Всього

90

б 60

d 70

і 80

Коли ми застосовуємо запит вище, ми отримуємо

SELECT>Student,>SUM>(score) AS>>total>FROM>Marks> GROUP BY>Student>

HAVING>total>70>

Учень Всього

90

і 80

Примітка. Це не попередньо визначене правило, але у великій кількості SQL-запитів ми використовуємо WHERE перед GROUP BY і HAVING після GROUP BY. Речення Where діє як a попередній фільтр де як Маючи як a фільтр постів.