CSV SQL抽出
CSVをSQL(SELECT)で抽出・並び替え・集計し、結果をCSVでダウンロードできます。読み込んだCSVは data というテーブルとして参照します。
CSVファイルの内容・SQL・SQL実行結果はブラウザ内でのみ処理され、サーバーへ送信・保存されません。Pipelineで受け渡すデータも同様です。
対応形式: .csv(最大サイズの制限はありません)
このツールでできること
CSVをSQLで抽出・集計するための主な機能です。
- CSVをSQL(SELECT)で抽出・並び替え・集計できます(WHERE・ORDER BY・LIMIT・DISTINCT・GROUP BY・HAVING・集計関数・CASE・CAST・WITH など)
- 読み込んだCSVの列名・推定される型・件数・先頭のプレビューを確認できます
- SQLの結果を表で確認し、全件をCSVとしてダウンロードできます
- CSV・SQL・結果はブラウザ内だけで処理されます
- 他のCSV系ツールから結果を受け取り、続けて別のCSV系ツールへ送ることができます
手順を見る
- CSVファイルをドラッグ&ドロップするか、テキストを貼り付けて読み込みます(初回のみSQLエンジンを読み込みます)
- 列名と型を確認し、dataテーブルに対するSQLを入力します
- 「実行」を押し(Ctrl/Cmd+Enterでも実行できます)、結果を確認します
- 結果をCSVダウンロード、またはPipelineで次のツールへ送ります
こんなときに使えます
こんな場面でCSV SQL抽出が役立ちます。
利用シーンを見る
- 特定の条件に一致する行だけを取り出したい
- 列ごとの件数や合計・平均を素早く確認したい
- 重複を除いた値の一覧(DISTINCT)を作りたい
- CSV加工ツールの結果をSQLでさらに絞り込み・集計したい
CSV SQL抽出の仕組みと注意点
このツールの動作の仕組みと、利用時の注意点を説明します。
詳しい解説を見る
ブラウザ内のSQLエンジンで処理します
読み込んだCSVは、ブラウザ内で動くSQLエンジン(DuckDB-Wasm)に data という名前のテーブルとして取り込まれ、入力したSQLがそのブラウザ内で実行されます。CSV・SQL・実行結果はサーバーへ送信・保存されません。SQLエンジン(約36 MB)は初回のみ読み込まれ、次回以降はブラウザのキャッシュが使われます。
利用できるSQLは、データを取り出すSELECT系の1文です
SELECT・WHERE・ORDER BY・LIMIT・DISTINCT・GROUP BY・HAVING・COUNT/SUM/AVG/MIN/MAX・CASE・CAST・WITH などが使えます。データを書き換える文(INSERT・UPDATE・DELETE・DROP など)、トランザクション制御(BEGIN・COMMIT など)、複数の文を並べた入力、PIVOT・EXPLAIN は利用できません。読み込んだCSVを変更したり、外部のファイルやネットワークへアクセスしたりすることはできません。
型は自動で判定されます
列の型(整数・小数・日付・文字列など)はCSVの内容から自動で判定され、「読み込んだCSV」の表に表示されます。小数は 1.50 が 1.5 のように数値として扱われるため、元の表記を保持したい場合は「すべて文字列として読み込む」を選んでください(この場合、数値の比較や集計には CAST が必要です)。
空欄は NULL として扱われます
型の自動判定では、CSVの空欄は NULL(値なし)になります。結果をCSVに出力するとき、NULL は空のフィールド、空文字列は "" として区別して出力します(1列だけの結果では、どちらも "" になります)。
列名の扱い
ヘッダーが重複・空欄のときは、name_1 や column0 のように自動で補正されます。空白・記号・日本語を含む列名や SQL の予約語は、"列名" のように二重引用符で囲んで指定します。
CSVの解釈と、大きな結果について
CSVはUTF-8・カンマ区切りで読み込みます(サイズは10 MiBまで)。閉じられていない引用符など、他のCSVツールではエラーになる形式も読み込める場合があります。結果は画面に200件ずつ表示され、CSVダウンロードには全件が含まれます。結果が非常に大きい場合は、メモリ不足を避けるため LIMIT などで絞り込んでください。
よくある質問
入力したCSVやSQLはサーバーへ送信されますか?
いいえ。CSVの読み込み・SQLの実行・結果の出力はすべてブラウザ内で完結しており、CSV・SQL・実行結果がサーバーへ送信・保存されることはありません。
最初に読み込みが遅いのはなぜですか?
ブラウザ内でSQLを実行するエンジン(約36 MB)を初回のみ読み込むためです。次回以降はブラウザのキャッシュから読み込まれます。通信が遅い場合は、中止して再試行できます。
CSVはどんなテーブル名でSQLに書けばよいですか?
読み込んだCSVは data という名前のテーブルです。例: SELECT * FROM data WHERE age >= 30 ORDER BY age DESC
INSERT や DELETE などは使えますか?
いいえ。利用できるのはデータを取り出す SELECT 系のクエリ1つです。データの変更、トランザクション制御、複数の文、PIVOT、EXPLAIN は利用できません。読み込んだCSVが変更されることもありません。
「すべて文字列として読み込む」はいつ使いますか?
小数の末尾の0などCSVの元の表記をそのまま保持したいときに使います。この場合、数値の比較や集計には CAST(例: CAST(age AS INTEGER) >= 30)が必要です。切り替えるとCSVを読み込み直し、実行結果はリセットされます。
空欄と NULL の違いは何ですか?
型の自動判定では、CSVの空欄は NULL(値なし)として扱われます。「すべて文字列として読み込む」では空文字列として保持されます。CSV出力では、NULL は空のフィールド、空文字列は "" として区別します。
結果が大きくてダウンロードできないときは?
LIMIT や WHERE で結果を絞り込んでください。表示とページ移動は引き続き利用できます。
エラーの詳細が表示されないのはなぜですか?
CSVの内容(セル値)や内部のパスが画面に出ないよう、エラーは原因を分類した説明だけを表示しています。列名の指定(二重引用符)やテーブル名 data をご確認ください。