SQL - Madde Sahibi

HAVING Clause sonuçlarda hangi grup sonuçlarının görüneceğini filtreleyen koşulları belirlemenizi sağlar.

WHERE yan tümcesi koşulları seçili sütunlara yerleştirirken HAVING yan tümcesi, koşulları GROUP BY yan tümcesi tarafından oluşturulan gruplara yerleştirir.

Sözdizimi

Aşağıdaki kod bloğu HAVING Cümlesinin bir sorgudaki konumunu gösterir.

SELECT
FROM
WHERE
GROUP BY
HAVING
ORDER BY

HAVING yan tümcesi, bir sorgudaki GROUP BY yan tümcesini izlemeli ve kullanılıyorsa ORDER BY yan tümcesinden önce gelmelidir. Aşağıdaki kod bloğu HAVING yan tümcesi de dahil olmak üzere SELECT ifadesinin sözdizimine sahiptir -

SELECT column1, column2
FROM table1, table2
WHERE [ conditions ]
GROUP BY column1, column2
HAVING [ conditions ]
ORDER BY column1, column2

Misal

Aşağıdaki kayıtlara sahip MÜŞTERİLER tablosunu düşünün.

+----+----------+-----+-----------+----------+
| ID | NAME     | AGE | ADDRESS   | SALARY   |
+----+----------+-----+-----------+----------+
|  1 | Ramesh   |  32 | Ahmedabad |  2000.00 |
|  2 | Khilan   |  25 | Delhi     |  1500.00 |
|  3 | kaushik  |  23 | Kota      |  2000.00 |
|  4 | Chaitali |  25 | Mumbai    |  6500.00 |
|  5 | Hardik   |  27 | Bhopal    |  8500.00 |
|  6 | Komal    |  22 | MP        |  4500.00 |
|  7 | Muffy    |  24 | Indore    | 10000.00 |
+----+----------+-----+-----------+----------+

Aşağıda, 2'ye eşit veya daha fazla olan benzer bir yaş sayımı için bir kayıt görüntüleyen bir örnek verilmiştir.

SQL > SELECT ID, NAME, AGE, ADDRESS, SALARY
FROM CUSTOMERS
GROUP BY age
HAVING COUNT(age) >= 2;

Bu, aşağıdaki sonucu verecektir -

+----+--------+-----+---------+---------+
| ID | NAME   | AGE | ADDRESS | SALARY  |
+----+--------+-----+---------+---------+
|  2 | Khilan |  25 | Delhi   | 1500.00 |
+----+--------+-----+---------+---------+