[q]の魅⼒力力
オープンソースBI勉強会#15
2015/03/02
⽯石井佑介
q  -‐‑‒  CSVやTSVをSQLで扱う
•  CSVやTSV  さらに標準⼊入⼒力力までSQLで集
計できる
•  group  by  の例例
都道府県ごとにカウントして、上位10件を表⽰示する例例
基本的な使い⽅方
cat  ファイル名  |  q  –t  –H  –T  –O  “select  *  from  –  limit  10”
q  –t  –H  –T  –O  “select  *  from  ファイル名  limit  10”
•  ⼊入⼒力力ファイル
–  ファイルの場合、from句句にpathを指定する
–  標準⼊入⼒力力の場合、from句句に  –  を指定する
•  オプション
-‐‑‒t  :  ⼊入⼒力力ファイルがタブ区切切り
-‐‑‒d  ,  :  ⼊入⼒力力ファイルがカンマ区切切り
-‐‑‒H  :  ⼊入⼒力力ファイルにヘッダあり
ヘッダが無い場合、C1,C2,C3,...の様な列列名になる
-‐‑‒T  :  出⼒力力形式をタブ区切切りにする
-‐‑‒D  ,  :  出⼒力力形式をカンマ区切切りにする
-‐‑‒O  :  ヘッダを出⼒力力する
join  ができる
•  2つのTSVを指定したキーでjoinできる
•  inner,  left  outer  join  に対応している
都道府県にエリア名をjoinし、エリア毎に集計する例例
•  個⼈人的にはExcel  vlookupが不不要になった
sqlite3の関数が使える
•  例例1.  正規表現による条件抽出
– where  todofuken_̲nm  regexp  ʻ‘(川|⼭山)ʼ’
川または⼭山を含む県名を抽出する例例
sqlite3の関数が使える
•  例例2.  ランダム関数によるサンプリング
–  where  abs(random())%10  <  1
100レコードから10%ランダムサンプリングする例例
詳しくは下記URLへ
•  http://harelba.github.io/q/index.html
お試しください。

qの魅力