

 Amazon Redshift は、パッチ 198 以降、新しい Python UDF の作成をサポートしなくなります。既存の Python UDF は、2026 年 6 月 30 日まで引き続き機能します。詳細については、[ブログ記事](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/)を参照してください。

# Amazon Redshift を使用したクエリの作成
<a name="query-editor-v2-query-run"></a>

エディタでクエリを入力するか、**[クエリ]** リストをクリックし **[実行]** をクリックします。

デフォルトでは、**[上限 100]** で、結果を 100 行に制限するように設定されています。このオプションをオフにすると、より大きな結果セットが返されます。このオプションをオフにすると、非常に大きな結果セットを避けるために、SQL 文に LIMIT オプションを含めることができます。詳細については、「*Amazon Redshift データベースデベロッパーガイド*」の「[ORDER BY clause](https://docs.aws.amazon.com/redshift/latest/dg/r_ORDER_BY_clause.html)」(句の順に表示) を参照してください。

結果領域にクエリプランを表示するには **[説明]** をオンにします。**[Explain graph]** (グラフの説明) をオンにしても説明プランのグラフィカルな表現が表示されます。

クエリを **[クエリ]** フォルダに保存するには **[保存]**を選択します。

クエリが成功すると、成功メッセージが表示されます。クエリが情報を返す場合、結果が **[結果]** セクションに移動します。結果の数が表示領域を超えると、結果領域の上部に数値が表示されます。数値を選択して、結果の連続したページを表示することができます。

列ごとに **[結果]** の絞り込みや並べ替えができます。結果列のヘッダーに絞り込み条件を入力するには、列の上にマウスポインターを置くと、メニュー (![Filter menu](http://docs.aws.amazon.com/ja_jp/redshift/latest/mgmt/images/menu.png)) で、列を絞り込む条件を入力できます。

クエリにエラーが含まれている場合、クエリエディタ v2 は結果領域にエラーメッセージを表示します。このメッセージは、クエリを修正する方法について説明します。

次のように結果領域で右クリックし、コンテキストニューを表示すると、クエリの結果をエクスポートまたはコピーできます。
+ ファイルに選択した行をダウンロードするには、**[コピー先]** と **[JSON]** または **[CSV]** を選択します。
+ **[行をコピー]** を選択して、選択した行をクリップボードにコピーします。
+ **[行とヘッダーをコピー]** を選択して、選択した行と列ヘッダーをクリップボードにコピーします。

結果セットの **[エクスポート]** を選択し、**[JSON]** または **[CSV]** を選択して、行形式の結果のセット全体をファイルにダウンロードすることもできます。結果セットの行数は、**[Limit]** (制限) オプションまたはクエリ内の SQL `limit` 句で制限できます。ダウンロードされた結果セットの最大サイズは 5 MB です。

ショートカット Ctrl\+C (Windows) または Cmd\+C (macOS) を使用しても、現在の結果ページからクリップボードにデータをコピーできます。行が選択されていない場合は、フォーカスのあるセルがクリップボードにコピーされます。行が選択されている場合は、選択されている行がクリップボードにコピーされます。

新しいクエリタブを追加するには、![New query tab](http://docs.aws.amazon.com/ja_jp/redshift/latest/mgmt/images/add-plus.png) アイコンを選択し、クエリタブのある行に表示されている **[Editor]** (エディタ) を選択します。クエリタブは `Isolated session` を使用する場合と使用しない場合があります。分離されたセッションでは、あるエディタタブで一時テーブルを作成するなどの SQL コマンドの結果は、別のエディタタブには表示されません。クエリエディタ v2 でエディタタブを開くとき、デフォルトは分離されたセッションです。

**クエリを実行する**

1. クエリ領域で、以下のいずれかの操作を行います。
   + クエリを入力します。
   + コピーしたクエリを貼り付けます。
   + **[クエリ]** フォルダを選択し、右クリックで保存したクエリのコンテキストメニューを開いて **[クエリを開く]** を選択します。

1. 実行する予定の SQL に対して、正しい **[Cluster]** (クラスター) または **[Workgroup]** (ワークグループ) と **[Database]** (データベース) の値を選択したことを確認します。

   ツリービューで **[Cluster]** (クラスター) または **[Workgroup]** (ワークグループ) を選択します。ツリービューでは **[Database]** (データベース) も選択します。

   各エディタタブ内の **[クラスター]**、**[ワークグループ]**、**[データベース]** を、各エディタタブの **[分離されたセッション]** ヘッダーの近くにあるドロップダウンコントロールを使用して変更できます。

   エディタタブごとに、SQL を**分離されたセッション**で実行するかどうかを選択します。分離されたセッションには、データベースへの独自の接続があります。これを使用して、他のクエリエディタセッションから分離された SQL を実行します。接続の詳細については、「[クエリエディタ v2 を開く](query-editor-v2-open.md)」を参照してください。

1. **[Run]** (実行) を選択します。

   **[結果]** 領域が開き、クエリ結果が表示されます。

**クエリの説明プランを表示する手順は、次のとおりです。**

1. クエリを選択します。

1. **[説明]** をオンにします。

   デフォルトでは **[説明グラフ]** もオンです。

1. **[実行する]** を選択します。

   クエリが実行され、説明プランがクエリ **[結果]** 領域に表示されます。

クエリエディタ v2 では次の機能をサポートしています。
+ 1 つのクエリタブで複数の SQL 文を使用してクエリを作成できます。クエリは連続して実行され、各クエリに対して複数の結果タブが開きます。
+ セッション変数と一時テーブルを使用してクエリを作成できます。
+ `${{{parameter}}}` で指定した置換可能なパラメータを使用してクエリを作成できます。複数の置換可能なパラメータを使用して SQL クエリを作成し、SQL 文の複数の場所で同じパラメータを使用できます。

  クエリが実行されると、パラメータの値を入力するためのウィンドウが表示されます。クエリを実行するたびに、パラメータ値を入力するためのウィンドウが表示されます。

  例については、[例:特定のパラメータより大きい売上](#query-editor-v2-example-sales-qtysold-greater-than-parameter)を参照してください。
+ クエリは自動的にバージョン管理されます。実行するクエリの以前のバージョンを選択できます。
+ ワークフローを続行する前に、クエリが完了するまで待つ必要はありません。クエリエディタを閉じた場合でも、クエリは引き続き実行されます。
+ クエリの作成時には、スキーマ名、テーブル名、列名のオートコンプリートがサポートされています。

SQL エディタでは次の機能をサポートしています。
+ SQL で使用される開始と終了の括弧の色は同じです。エディタには、括弧を一致させるのに役立つ縦線が表示されます。
+ SQL のセクションは、展開および折りたたむことができます。
+ SQL 内のテキストを検索して置換できます。
+ ショートカットキーは、一般的な編集作業の一部で使用できます。
+ SQL エラーはエディタで強調表示され、問題箇所を簡単に特定できます。

エディタ機能のデモについては、次の動画をご覧ください。

[![AWS Videos](http://img.youtube.com/vi/9JAq0yDs0YE/0.jpg)](http://www.youtube.com/watch?v=9JAq0yDs0YE)


## クエリの例
<a name="query-editor-v2-examples"></a>

次に、実行できるクエリのさまざまなタイプの説明をします。

これらのクエリの多くで使用されているデータは `tickit` サンプルスキーマのものです。`tickit` サンプルデータのロードの詳細については、「[データベースにデータをロードする](query-editor-v2-loading.md)」を参照してください。`tickit` サンプルデータの詳細については、「*Amazon Redshift データベースデベロッパーガイド*」の「[サンプルデータベース](https://docs.aws.amazon.com/redshift/latest/dg/c_sampledb.html)」を参照してください。

これらのサンプルクエリを実行する際には、エディタで正しいデータベースを選択していることを確認してください (`sample_data_dev`など）。

**Topics**
+ [例:セッション変数の設定](#query-editor-v2-example-set-session-variable)
+ [例:売上合計による上位のイベント](#query-editor-v2-example-top-event-sales)
+ [例:特定のパラメータより大きい売上](#query-editor-v2-example-sales-qtysold-greater-than-parameter)
+ [例: 一時テーブルの作成](#query-editor-v2-example-create-temporary-table)
+ [例: 一時テーブルからの選択](#query-editor-v2-example-select-from-temporary-table)

### 例:セッション変数の設定
<a name="query-editor-v2-example-set-session-variable"></a>

次のコマンドでは、セッションの `search_path` サーバー設定パラメータを *公開* に設定しています。詳細については、「*Amazon Redshift データベースデベロッパーガイド*」の 「[SET](https://docs.aws.amazon.com/redshift/latest/dg/r_SET.html)」と「[search\_path](https://docs.aws.amazon.com/redshift/latest/dg/r_search_path.html)」を参照してください。

```
set search_path to public;
```

### 例:売上合計による上位のイベント
<a name="query-editor-v2-example-top-event-sales"></a>

次のクエリは、売上が最も多いイベントを検索します。

```
select eventname, count(salesid) totalorders, sum(pricepaid) totalsales
from sales, event
where sales.eventid=event.eventid
group by eventname
order by 3;
```

以下に、結果の一部を示します。

```
eventname           totalorders       totalsales
White Christmas         20              9352
Joshua Radin            38             23469
Beach Boys              58             30383
Linda Ronstadt          56             35043
Rascal Flatts           76             38214
Billy Idol              67             40101
Stephenie Meyer         72             41509
Indigo Girls            57             45399
...
```

### 例:特定のパラメータより大きい売上
<a name="query-editor-v2-example-sales-qtysold-greater-than-parameter"></a>

次のクエリは、販売数量が `${numberoforders}` で指定された パラメータよりも大きい売上を検索します。パラメータ値が `7` の場合、結果は 60 行です。クエリを実行すると、クエリエディタ v2 は、SQL 文のパラメータの値を収集するための**[クエリの実行フォーム]** ウィンドウを表示します。

```
select salesid, qtysold
from sales 
where qtysold > ${numberoforders}
order by 2;
```

以下に、結果の一部を示します。

```
salesid	qtysold
20005	8
21279	8
130232	8
42737	8
74681	8
67103	8
105533	8
91620	8
121552	8
...
```

### 例: 一時テーブルの作成
<a name="query-editor-v2-example-create-temporary-table"></a>

次の文は、テンポラリテーブル*イベントセールス*から情報を選択して*[セールス]* および *[イベント]* テーブル。

```
create temporary table eventsalestemp as
select eventname, count(salesid) totalorders, sum(pricepaid) totalsales
from sales, event
where sales.eventid=event.eventid
group by eventname;
```

### 例: 一時テーブルからの選択
<a name="query-editor-v2-example-select-from-temporary-table"></a>

次の文は、一時テーブル *[eventsalestemp]* から、イベント、総注文数、総売上高を総注文数の順に選択します。

```
select eventname,  totalorders,  totalsales
from eventsalestemp
order by 2;
```

以下に、結果の一部を示します。

```
eventname          totalorders   totalsales
White Christmas        20          9352
Joshua Radin           38         23469
Martina McBride        50         52932
Linda Ronstadt         56         35043
Indigo Girls           57         45399
Beach Boys             58         30383
...
```