【SQL】各ユーザの案件実績数を年ごとに集計する
こんにちは。
少し前まではデータを表示するダッシュボードの作成が多かったのですが、最近は少し分析的要素も増えて集計をすることが増えてきました。
本日は、登録ユーザさんの年別の案件実績数を一覧として出しました。実績が多い方達には日々頭が下がる思いです。感謝。
作成したクエリ
SELECT DATE_FORMAT(executed_at, '%Y') as `Year`
, user_id
, COUNT(id) as COUNT
FROM user_action
GROUP BY `Year`, user_id
executed_at: 実行日。YYYYMMDD形式。
user_id: 登録ユーザのID
id: 案件ごとのID
説明
user_actionテーブルには、案件ごとにIDが振られているます。IDをuserごとに集計すると累積案件実績数が出せます。クエリで表すと次の通り:
SELECT user_id
, COUNT(id) as COUNT
FROM user_action
GROUP user_id
ここに
DATE_FORMAT(executed_at, '%Y') as `Year`
と実施年もグルーピングすることで、実施年度ごとの集計になります。
※テーブル名や項目名は加工して汎用的にしています。