コンテンツにスキップ

先頭から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 "売上" DESC
LIMIT 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 行

関連