GROUP BY句は、問合わせ式の個々のSELECT文で使用できますが、そのSELECT文にだけ適用され、結果セットには適用されません。
ORDER BY句は、問合わせ式の最後のSELECT文にだけ使用することができ、結果セットの順序を指定します。
ORDER BY句には、数値リテラルだけを含めることができます。
例えば、結果セット内の最初の列で順序付けるには、ORDER BY 1と指定します。
集合演算子を含むビュー定義ではGROUP BYを使用できますが、ORDER BYは使用できません。集合演算子と共にビュー定義に適用されたSELECT文では、GROUP BYとORDER BYを使用できます。ビュー定義の中でのこれらの演算子の正しい使い方を、次の例に示します。
REPLACE VIEW v AS SELECT x1,y1 FROM table1 UNION SELECT x2,y2 FROM table2; SELECT * FROM v ORDER BY 1; SELECT SUM(x1), y1 FROM v GROUP BY 2;
GROUP BY演算子をUNIONされたSELECTにそれぞれ適用することもできます。次の例は、その方法を示しています。
REPLACE VIEW v(column_1,column_2) AS SELECT MIN(x1),y1 FROM table_1 GROUP BY 2 UNION ALL SELECT MIN(x2),y2 FROM table_2 GROUP BY 2 UNION ALL SELECT x3,y3 FROM table_3; SELECT SUM(v.column_1) (NAMED sum_c1),column_2 GROUP BY 2 ORDER BY 2; SELECT * FROM table_1 WHERE (x1,y1) IN (SELECT SUM(x2), y2 FROM table_2 GROUP BY 2 UNION SELECT SUM(x3), y3 FROM table_3 GROUP BY 2 );