先頭からn行選択
先頭から指定した行数だけを残します。並べ替えてから取ることも、グループごとに取ることもできます。
分析プロジェクトとの違い
| 見るところ | SQLビルダー | 分析プロジェクト |
|---|---|---|
| 方向 | 先頭からのみ | 先頭 / 末尾 |
| 行数 | 1 つ(既定 5、上限 5,000) | カンマ区切りで複数 |
| 並べ替え | 1 列(昇順・降順・しない) | 複数列 |
| グループごと | ある(MySQL では使えない) | ある |
| 選択行を削除する | ない | ある |
末尾から取りたいときは、並べ替えを逆にして先頭から取ってください。
入出力
| ポート | 内容 |
|---|---|
| 入力データ | データ |
| 出力データ | データ |
設定項目
フォームは「取得する行の設定」という見出しで始まります。
- 取得する行数必須
- 残す行の数。整数で入力します。既定は
5、上限は 5,000 です。 - オプション
- 開かなければ、並べ替えずに先頭から取ります。
- 並べ替えタイプを選択必須
- オプションの中の項目。降順 / 昇順 / 並べ替えしない(既定)。
- 対象列を選択必須
- 「並べ替えしない」以外を選んだときに出ます。数値・文字列・日付・日付時刻の列から 1 つ選べます。
- グループごとに処理する
- キーを選ぶと、そのグループごとに先頭から n 行を取ります。複数選べます。
3 つの取り方
設定の組み合わせで、組み立てられる SQL が変わります。
| 設定 | 取り方 |
|---|---|
| オプションを開かない | 並べ替えずに先頭から n 行 |
| 並べ替えだけ | 並べ替えてから先頭 n 行 |
| グループを指定 | グループごとに n 行。グループの数だけ行が残る |
つなぎ先による違い
| つなぎ先 | グループごとに処理する |
|---|---|
| MySQL | 使えない(エラーになります) |
| そのほか | 使える |
SQL Server/Azure T-SQL では、行数の絞り込みに LIMIT ではなく TOP が使われます。結果は同じです。
生成される SQL
PostgreSQL につないだ場合です。
並べ替えてから 10 行
SELECT "店舗", "売上"FROM "orders"ORDER BY "売上" DESCLIMIT 10店舗ごとに 3 行
SELECT "店舗", "売上"FROM ( SELECT "店舗", "売上", ROW_NUMBER() OVER (PARTITION BY "店舗" ORDER BY "売上" DESC) AS "index" FROM "orders") AS "n"WHERE "index" <= '3'グループごとのときだけ、番号を振ってから絞る形になります。 番号の列 index は出力には残りません。行数が '3' と引用符付きになっているのは、Google BigQuery 以外では行数を文字として渡しているためです(比較はデータベース側で数として行われます)。
エラーと対処
どのエラーも、設定を直してノードを実行し直せば消えます。
MySQL でグループごとに取ろうとした
MySQL につないだビルダーで「グループごとに処理する」を使うと出ます。
MySQLではこの処理はサポートされていません
直し方 — グループの指定を外してください。グループごとに取りたい場合は、手前に条件で行を絞り込みを置いてグループを 1 つに絞り、そのぶんだけノードを並べてください。
上流にない列が選ばれている
前のノードで列が消えたあとに実行すると出ます。
存在しない列が選択されています
直し方 — 対象列とグループのキーを選び直してください。
入力がつながっていない
前のノードがつながっていないと出ます。
カラムが選択されていません。条件を確認してください
直し方 — 入力にノードをつないでください。
行数が上限を超えている
「取得する行数」に 5,001 より大きい数を入れた場合です。空や数字でないものはフォームの検査で止まるので、ここまで来ません。翻訳された文言はなく、英語のまま出ます。
size is max value 5000
直し方 — 1 以上 5,000 以下の整数を入れてください。もっと多くの行が要るときは、この機能を使わずデータソース化するで取り込んでください。
よく使う例
1. 中身を少しだけ見る
お題 — どんなデータか先に 5 行だけ見たい
入力 — テーブルの全列
設定 — 取得する行数 5、オプションは開かない
出力 — 5 行
2. 売上トップ 10
お題 — 売上の大きい取引を 10 件
入力 — 店舗 売上
設定 — 行数 10、並べ替えは降順、対象列 売上
出力 — 売上の大きい順に 10 行
3. 下位 10 件を取る
お題 — 売上の小さい方を見たい
入力 — 店舗 売上
設定 — 行数 10、並べ替えは昇順、対象列 売上
出力 — 売上の小さい順に 10 行
4. 店舗ごとのトップ 3
お題 — 店舗ごとに売れた商品の上位 3 件を知りたい
入力 — 店舗 商品 売上
設定 — 行数 3、並べ替えは降順、対象列 売上、グループごとに処理するに 店舗
出力 — 店舗の数 × 3 行
5. 直近の 1 件だけ残す
お題 — 顧客ごとに最後の取引だけ見たい
入力 — 顧客ID 受注日 売上
設定 — 行数 1、並べ替えは降順、対象列 受注日、グループごとに処理するに 顧客ID
出力 — 顧客 1 人につき 1 行
6. 絞ってから取る
お題 — 今年の取引の中からトップ 10 を出したい
入力 — 受注日 店舗 売上
設定 — 手前に条件で行を絞り込みを置いてから、この機能をつなぐ
出力 — 今年のぶんだけの上位 10 行