Rumah >pangkalan data >tutorial mysql >Bolehkah Klausa HAVING Wujud Tanpa Klausa GROUP BY dalam Standard SQL?

Bolehkah Klausa HAVING Wujud Tanpa Klausa GROUP BY dalam Standard SQL?

Barbara Streisand
Barbara Streisandasal
2025-01-05 09:25:40216semak imbas

Can a HAVING Clause Exist Without a GROUP BY Clause in Standard SQL?

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn