エイリアス化された集計が HAVING 句で禁止されている理由
SQL では、ユーザーが集計のエイリアスを使用しようとするとエラーが発生することがよくあります。 HAVING 句。これは、SQL がクエリを処理する特定の順序に起因します。
GROUP BY 操作の結果をフィルタリングする HAVING 句は、SELECT 句の前に評価されます。その結果、SELECT 句で定義されたエイリアスは、HAVING 句の評価時にまだ使用できません。
これをよりよく理解するために、次のクエリ実行の論理シーケンスを考えてみましょう:
HAVING 句は SELECT 句の前に評価されるため、クエリ内で後から定義されたエイリアスを参照できません。この制限は、例に示すように、HAVING 句でエイリアスを使用すると「無効な列名」エラーが発生する理由を説明しています。
対照的に、ORDER BY 句は次のとおりであるため、エイリアスは ORDER BY 句で機能します。 SELECT 句の後に評価されます。したがって、SELECT 句で定義されたエイリアスは、ORDER BY 句で使用できます。
以上がSQL の HAVING 句でエイリアス化された集計を使用できないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。