ホームページ >データベース >mysql チュートリアル >標準 SQL では GROUP BY 句なしで HAVING 句が存在できますか?

標準 SQL では GROUP BY 句なしで HAVING 句が存在できますか?

Barbara Streisand
Barbara Streisandオリジナル
2025-01-05 09:25:40246ブラウズ

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

GROUP BY なしの HAVING: 標準 SQL 準拠

標準 SQL では GROUP BY 句なしで HAVING 句が存在できますか?標準によれば、HAVING 句を使用する場合は GROUP BY 句が必要です。標準では、HAVING 句で参照される各カラムは、GROUP BY 句のカラムまたは外部参照に機能的に依存する必要があると規定されています。

ただし、MySQL では GROUP BY 句なしの HAVING 句が許可されており、特定の条件下で期待どおりに機能します。つまり、最初の行が指定された列の最大値を持つ場合です。

標準に準拠するには、クエリを変更して、 GROUP BY 句。たとえば、最大ページ数の行を取得する場合、修正されたクエリは次のようになります。

SELECT *
FROM Book
GROUP BY BookID
HAVING NumberOfPages = MAX(NumberOfPages)

このクエリは、BookID で行をグループ化し、各グループに HAVING 条件を適用して、次のクエリを返します。各グループ内の最大ページ数の行のみ。

以上が標準 SQL では GROUP BY 句なしで HAVING 句が存在できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。