例: 列の別名による順序付け - Teradata Database - Teradata Vantage NewSQL Engine - 例: 列の別名による順序付け、ORDER BY句

Teradata Vantage™ SQLデータ操作言語

Product
Teradata Database
Teradata Vantage NewSQL Engine
Release Number
16.20
Published
2019年3月
Language
日本語
Last Update
2019-10-29
dita:mapPath
ja-JP/fbo1512081269404.ditamap
dita:ditavalPath
ja-JP/fbo1512081269404.ditaval
dita:id
B035-1146
Product Category
Software
Teradata Vantage

列の別名で明示的に順序付けすることはできません。別名を持つ列の列位置を選択リスト内の名前で指定します。

次の基本テーブル定義があると仮定します。

   CREATE TABLE t1
    (i INTEGER,
     j INTEGER,
     k INTEGER);

このテーブルに対する以下の問合わせは、列の別名jに基づく順序付けを指定しているため失敗します。システムは、式SUM(t1.j)でなくテーブルj内の列t1として解釈します。

   SELECT t1.i, SUM(t1.j) AS j, t1.k
   FROM t1
   GROUP BY 1,3
   ORDER BY j;
   *** Failure 3504 Selected non-aggregate values must be part of the associated group.

問合わせを以下のように書き換えると、意図した順序付けの実行に成功します。

   SELECT t1.i, SUM(t1.j) AS j, t1.k
   FROM t1
   GROUP BY 1,3
   ORDER BY 2;