メニュー
Amazon Redshift
データベース開発者ガイド (API Version 2012-12-01)

SELECT リスト

SELECT リストは、クエリが返す列、機能、および式を指定します。このリストは、クエリの出力を表しています。

構文

Copy
SELECT [ TOP number ] [ ALL | DISTINCT ] * | expression [ AS column_alias ] [, ...]

Parameters

TOP

TOP は引数として正の整数を取り、クライアントに返される行数を定義します。TOP 句に関する動作は、LIMIT 句に関する動作と同じです。返される行数は固定ですが、行のセットは固定ではありません。一貫性のある行セットを返すには、TOP または LIMIT を ORDER BY 句と組み合わせて使用します。

ALL

DISTINCT を指定しない場合、デフォルトの動作を定義する冗長キーワード。SELECT ALL * は、SELECT * と同じ意味です (すべての列のすべての行を選択し、重複を維持します)。

DISTINCT

1 つまたは複数の列の一致する値に基づいて、結果セットから重複する行を削除するオプション。

* (アスタリスク)

テーブルのコンテンツ全体を返します (すべての列とすべての行)。

expression

クエリによって参照されるテーブル内に存在する 1 つまたは複数の列から構成される式。式には、SQL 関数を含めることができます。(例:

Copy
avg(datediff(day, listtime, saletime))
AS column_alias

最終的な結果セットに使われる列のテンポラリ名。AS キーワードはオプションです。(例:

Copy
avg(datediff(day, listtime, saletime)) as avgwait

シンプルな列名ではない式に対して、エイリアスを指定しない場合、結果セットはその列に対してデフォルト名を適用します。

注記

アイリアスは、ターゲットリスト全体が解析されるまで認識されません。つまり、ターゲットリスト内以外では、エイリアスを参照できないということです。例えば、対のステートメントは失敗します。

Copy
select (qtysold + 1) as q, sum(q) from sales group by 1; ERROR: column "q" does not exist

q に対してエイリアスを作成した式と同じ式を使用してください。

Copy
select (qtysold + 1) as q, sum(qtysold + 1) from sales group by 1; q | sum ---+-------- 8 | 368 ...

使用に関する注意事項

TOP は SQL 式です。LIMIT 動作に対する選択肢を提供します。TOP と LIMIT を同じクエリで使用することはできません。