17.10 - 例: GROUP BY句の使い方 - Advanced SQL Engine - Teradata Database

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

Product
Advanced SQL Engine
Teradata Database
Release Number
17.10
Release Date
2021年7月
Content Type
プログラミング リファレンス
Publication ID
B035-1144-171K-JPN
Language
日本語 (日本)

集約および順序付き分析関数と同様、GROUP BY句も再帰的ビュー定義内のシード文の一部としてコーディングされる場合は有効ですが、繰り返し文の一部としてコーディングされる場合は無効です。

最初の例は、GROUP BY句の正しい使い方を示しています。この例でGROUP BYは、シード文の一部としてコーディングされています。

    CREATE RECURSIVE VIEW aggregation (source,destination,mycount) AS (
      SELECT source, destination, 0 AS mycount
      FROM flights
      GROUP BY source, destination
    UNION ALL
      SELECT in1.source, out1.destination, in1.mycount + 1
      FROM aggregation AS in1, flights AS out1
      WHERE in1.destination = out1.source
      AND   in1.mycount <=100);

2番目の例は、GROUP BY句の無効な使い方を示しています。この例でGROUP BY句は、繰り返し文の一部としてコーディングされています。

    CREATE RECURSIVE VIEW aggregation (source,destination,mycount) AS (
      SELECT source, destination, 0 AS mycount
      FROM flights
    UNION ALL
      SELECT in1.source, out1.destination, in1.mycount + 1
      FROM aggregation AS in1, flights AS out1
      WHERE in1.destination = out1.source
      AND   in1.mycount <=100
      GROUP BY in1.source, out1.destination);