DuckDBを使ってVim駅伝の年毎の参加人数を調べてみた
はじめに
事の発端についてはこちらを参照
本題
実行したSQLは以下の通りです。
12345678910
SELECT
date_part('year', a.date) as year,
count(DISTINCT a.runner) as unique_runners,
count(*) as total_articles
FROM(
SELECT unnest(articles) as a
FROM read_json('src/content.json')
)
GROUP BY year
ORDER BY year;
出力結果は以下の通りです。
12345678
┌───────┬────────────────┬────────────────┐
│ year │ unique_runners │ total_articles │
│ int64 │ int64 │ int64 │
├───────┼────────────────┼────────────────┤
│ 2023 │ 48 │ 131 │
│ 2024 │ 60 │ 157 │
│ 2025 │ 7 │ 7 │
└───────┴────────────────┴────────────────┘
昨年は60人も参加してくださったようだ。ありがたい。。。
おわりに
話に聞いていたとおり、DuckDBを使うことで楽にJSONデータを扱うことができました。