H2Databaseを追っかけていたりしたブログ

H2 database のリリースノートを読んだりとか。

思い立ってから3分以内にCSVファイルに対してgroup byをかける

CSVファイルに対してgroup byをかけたい、と思う瞬間が技術者だったら必ずあるはずです。

手元には、CSVファイルと、Officeが入ったWindowsマシン。Excelでどうにかできたはずだ...と思うものの、なんとなくやってみてもうまくできない。ただ、group byかけたいだけなんだよ。

そんなあなたに。

前提:

  • JREインストール済み
  • インターネットに接続できる
  • 読みたいCSVの1行目は項目名で、ファイルの文字コードはプラットフォーム標準のものである

Javaの開発者であれば、まぁ、特に問題ない前提かと。

H2を落としてくる

Downloads
Windows Installerとかあるが不要(exeだし無駄にファイルが大きい)。Jar Fileの項のMaven.orgかSourceforge.netから落とす。これなら1.2Mくらい。

起動

java -jar h2-1.2.128.jar
ブラウザが開く。

ログイン

JDBCURLに以下の文字列を設定して、[接続]をクリック
jdbc:h2:mem: (最後のコロン重要)

sql実行

右側のテキストエリアに下記のSQLを貼り付けてCTRL+ENTER

select 項目名,count(*)
from csvread('対象のCSVファイルをフルパスで')
group by 項目名

csvファイル同士で、joinさせる事もできる。

select 項目名,count(*)
from csvread('対象のCSVファイルをフルパスで') as A
join csvread('対象のCSVファイルをフルパスで') as B on A.項目 = B.項目

終了時には、javaを実行しているプロンプトでCTRL+Cとか。それだけで後腐れなくすっきり。

なんとなく覚えていれば、現場で受け取ったCSVが何かおかしい気がする(ありがち)とかいう時に、助けになるときがあるでないかと思う次第。便利。おすすめです。