列の別名で明示的に順序付けすることはできません。別名を持つ列の列位置を選択リスト内の名前で指定します。
次の基本テーブル定義があると仮定します。
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;