ホームページ > データベース > mysql チュートリアル > SQL の HAVING 句でエイリアス化された集計を使用できないのはなぜですか?

SQL の HAVING 句でエイリアス化された集計を使用できないのはなぜですか?

Mary-Kate Olsen
リリース: 2024-12-31 17:32:10
オリジナル
893 人が閲覧しました

Why Can't I Use Aliased Aggregates in SQL's HAVING Clause?

エイリアス化された集計が HAVING 句で禁止されている理由

SQL では、ユーザーが集計のエイリアスを使用しようとするとエラーが発生することがよくあります。 HAVING 句。これは、SQL がクエリを処理する特定の順序に起因します。

GROUP BY 操作の結果をフィルタリングする HAVING 句は、SELECT 句の前に評価されます。その結果、SELECT 句で定義されたエイリアスは、HAVING 句の評価時にまだ使用できません。

これをよりよく理解するために、次のクエリ実行の論理シーケンスを考えてみましょう:

  1. FROM 句で結合されたすべてのテーブルの結果が形成されます。
  2. WHERE 句は、検索に一致しない行を除外します。
  3. 行は GROUP BY 句に従ってグループ化されます。
  4. HAVING 句の条件を満たさないグループは削除されます。
  5. 集計値を計算するために集計関数が適用されます。 .
  6. SELECT 句の式は次のとおりです。

HAVING 句は SELECT 句の前に評価されるため、クエリ内で後から定義されたエイリアスを参照できません。この制限は、例に示すように、HAVING 句でエイリアスを使用すると「無効な列名」エラーが発生する理由を説明しています。

対照的に、ORDER BY 句は次のとおりであるため、エイリアスは ORDER BY 句で機能します。 SELECT 句の後に評価されます。したがって、SELECT 句で定義されたエイリアスは、ORDER BY 句で使用できます。

以上がSQL の HAVING 句でエイリアス化された集計を使用できないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート