17.05 - GROUP BYおよびORDER BY句 - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQLデータ操作言語

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

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
   );