LoginSignup
7
8

More than 5 years have passed since last update.

CSV/TSVにクエリを適用する `q` を使う

Posted at

q とは何か

ググラビリティが非常に低そうですが、有用度は非常に高いツールです。
CSV/TSVに対してSQL(like)なクエリを発行できます。

導入する

OSXでの導入方法

(私の使っている)OSXではhomebrewで導入できます。

brew install q

その他のOSの場合の導入方法

公式ページのインストール手順を確認して下さい。

使う

データを準備する

UTF-8であれば対応しているようですので、郵便番号CSVをダウンロードしてUTF-8へ変換します。

curl -vs http://www.post.japanpost.jp/zipcode/dl/oogaki/zip/ken_all.zip 2>/dev/null\
 | tar -xvf- -O - 2>/dev/null\
 | nkf -w > ken_all.csv

クエリを発行する

郵便番号が最も多い都道府県はどこか

q -d',' "select count(c7) as c,c7 from ken_all.csv group by c7 order by c desc"|head -n 10
8245,北海道
7525,愛知県
6672,京都府
5435,新潟県
5217,兵庫県
3934,福島県
3843,大阪府
3808,東京都
3588,千葉県
3368,岐阜県

郵便番号が最も多い市区町村はどこか

q -d',' "select count(c7||c8) as c,c7||c8 as ct from utf-8.csv group by ct order by c desc"|head -n 10
1147,富山県富山市
836,岐阜県岐阜市
775,東京都港区
753,新潟県上越市
696,東京都新宿区
660,京都府京都市上京区
630,京都府京都市伏見区
601,京都府京都市下京区
582,新潟県長岡市
557,京都府京都市中京区

ToDo

JOINが使えるのですが、使えるネタを見つけていません…。

7
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
8