having-clause

HAVING 節は、検索条件が真となる中間結果表のグループから 構成される結果表を指定します。 中間結果表は前の節の結果です。 前の節が GROUP BY でない場合、中間結果表は、副選択の前の節のグループ化列を持たない 単一のグループと見なされます。

従属節の構文

構文図を読むビジュアルシンタックスダイアグラムをスキップするHAVINGsearch-condition

有節の説明

search-condition の各列名は、以下のいずれか にしてください。

  • 中間結果表のグループ化列を明確に示すこと。
  • 集計関数内で指定する 1
  • 相関参照であること。 column-name は、外部副選択で識別された表、ビュー、common-table-expression、または nested-table-expression の列を示す場合に、相関参照となります。

検索条件が適用される中間結果表のグループは、検索条件内の各関数に対して引数を与えます。ただし、引数が相関参照である関数は除きます。

検索条件に副照会が含まれる場合、副照会は中間結果表のグループに 検索条件が適用されるたびに実行され、その結果に対して検索条件 が適用されると考えることができます。 実際には、副照会が各グループごとに実行されるのは、 その中に相関参照が入っている場合だけです。 違いを説明した図は、 例4例5 を参照してください。

中間結果表のグループに対する相関参照は、グループ化列を示しているか、あるいは集約関数に含まれていなければいけません。

GROUP BY なしで HAVING を使う場合には、選択リストの式または列名が集約関数の中で指定されている必要があります。

RID 組み込み関数と ROW CHANGE 式が集約関数内になければ、これらを HAVING 文節で指定することはできません。

行アクセス制御は HAVING 節の操作に影響しません。

1 集約関数の使用に適用される制限については、 Db2 に付属する組み込み関数および関数をご覧ください。