MEMILIKI tanpa GROUP BY: Standard SQL Compliance
Bolehkah klausa HAVING wujud tanpa klausa GROUP BY dalam SQL standard? Mengikut piawaian, klausa GROUP BY diperlukan apabila menggunakan klausa HAVING. Piawaian menyatakan bahawa setiap lajur yang dirujuk dalam klausa HAVING mestilah sama ada bergantung secara fungsi pada lajur dalam klausa GROUP BY atau rujukan luar.
Walau bagaimanapun, MySQL membenarkan klausa HAVING tanpa klausa GROUP BY, dan ia berfungsi seperti yang diharapkan dalam keadaan tertentu: apabila baris pertama mempunyai nilai maksimum untuk lajur yang ditentukan.
Untuk mematuhi kepada standard, pertanyaan harus diubah suai untuk memasukkan klausa GROUP BY. Sebagai contoh, jika kita ingin mendapatkan semula baris dengan bilangan halaman maksimum, pertanyaan yang diperbetulkan ialah:
SELECT * FROM Book GROUP BY BookID HAVING NumberOfPages = MAX(NumberOfPages)
Pertanyaan ini akan mengumpulkan baris mengikut BookID dan menggunakan syarat HAVING pada setiap kumpulan, mengembalikan hanya baris dengan bilangan halaman maksimum dalam setiap kumpulan.
Atas ialah kandungan terperinci Bolehkah Klausa HAVING Wujud Tanpa Klausa GROUP BY dalam Standard SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!