16.20 - HAVING - Teradata Database - Teradata Vantage NewSQL Engine

Teradata Vantage™ SQLデータ定義言語 構文規則および例

Product
Teradata Database
Teradata Vantage NewSQL Engine
Release Number
16.20
Release Date
2019年3月
Content Type
プログラミング リファレンス
Publication ID
B035-1144-162K-JPN
Language
日本語 (日本)

この後、SELECTリクエスト内の条件グループ句が続きます。

condition
結果のグループが満たすべき1つまたは複数の条件ブール式を指定します。
HAVING条件では集約演算子を使用できます。
HAVING条件に、BLOB、CLOB、UDTまたはPeriod列を指定することはできません。
HAVING句内のsubquery述部にSAMPLE句を指定することはできません。
HAVING conditionは、集約の結果のみを含んでいる選択式リストで定義された単一のグループから行をフィルタ処理するか、またはGROUP BY句で定義されたグループ(1つまたは複数)から行を選択します。

例: 集約を含むビューの作成

次のリクエストでは、ビュー定義における集約の使い方を示します。結果の行は部門番号によってまとめられ、平均給与が35,000ドル以上の行だけを含みます。

    CREATE VIEW dept_sal (deptno, minsal, maxsal, avgsal) AS 
     SELECT deptno, MIN(salary), MAX(salary), AVG(salary) 
     FROM employee 
     GROUP BY deptno 
     HAVING AVG(salary) >= 35000;

ここで、このビューを使用して次のSELECTリクエストを実行します。

    SELECT * 
    FROM dept_sal; 

この問合わせは、次の応答セットを返します。

    DeptNo         MinSal         MaxSal         AvgSal 
    ------     ----------      ---------     ----------
       600      28,600.00      45,000.00      36,650.00
       300      23,000.00      65,000.00      47,666.67
       700      30,000.00      45,000.00      37,666.67
       500      22,000.00      56,000.00      38,285.71

次のSQLリクエストは、その後に示す応答セットを返します。

    SELECT deptno, minsal, minsal+10000, avgsal 
    FROM dept_sal 
    WHERE avgsal > (minsal + 10000);
    
    DeptNo         MinSal      (MinSal+10000)         AvgSal 
    ------     ----------   -----------------     ----------
       500      22,000.00            32000.00      38,285.71
       300      23,000.00            33000.00      47,666.67