Mari kita pertimbangkan jadual berikut-
ID Score 1 95 2 100 3 88 4 100 5 73
Saya seorang SQL noob yang lengkap, tetapi bagaimana cara saya mengembalikan skor yang mengandungi ID 2 dan 4? Jadi ia sepatutnya mengembalikan 100 kerana ia muncul dalam kedua-dua ID 2 dan 4
Ini akan memilih baris dengan ID 2 dan 4. Kemudian, klausa
HAVING
memastikan bahawa kita menemui kedua-dua baris; jika salah satu daripadanya hilang, kiraan akan menjadi kurang daripada 2.Ini mengandaikan
id
adalah satu-satunya lajur.Ini ialah contoh pertanyaan "set dalam set". Saya mengesyorkan menggunakan klausa
having
untuk pengagregatan kerana ia adalah kaedah yang paling fleksibel.Apa yang dilakukan ini ialah agregat mengikut skor. Kemudian bahagian pertama klausajumlah(id = 2)) mengira berapa banyak "2" yang terdapat dalam setiap pecahan. Yang kedua ialah nombor "4". Hanya markah "2" dan "4" dikembalikan.
having
子句的第一部分 (sum(id = 2)
(