SQL Serverで集計表を出力
日付をDATETIME型で管理している場合、CONVERT関数、DATEPART関数を使って、日、週、月、年別の集計結果を出力することができます。
週別の集計は日曜はじまりなので注意する
集計方法
日次集計
-- 日次(CONVERT)
SELECT CONVERT(VARCHAR, 日付, 111)
, COUNT(*)
FROM テーブル名
GROUP BY CONVERT(VARCHAR, 日付, 111)
-- 日次(DATEPART)
SELECT DATEPART(YEAR, 日付)
, DATEPART(MONTH, 日付)
, DATEPART(DAY, 日付)
, COUNT(*)
FROM テーブル名
GROUP BY DATEPART(YEAR, 日付)
, DATEPART(MONTH, 日付)
, DATEPART(DAY, 日付)
週次集計
-- 週次(DATEPART) ※日曜はじまり
SELECT DATEPART(WEEK, 日付)
, COUNT(*)
FROM テーブル名
GROUP BY DATEPART(WEEK, 日付)
月次集計
-- 月次(CONVERT)
SELECT SUBSTRING(CONVERT(VARCHAR, 日付, 111), 1, 7)
, COUNT(*)
FROM テーブル名
GROUP BY SUBSTRING(CONVERT(VARCHAR, 日付, 111), 1, 7)
-- 月次(DATEPART)
SELECT DATEPART(YEAR, 日付)
, DATEPART(MONTH, 日付)
, COUNT(*)
FROM テーブル名
GROUP BY DATEPART(YEAR, 日付)
, DATEPART(MONTH, 日付)
年次集計
-- 年次(CONVERT)
SELECT SUBSTRING(CONVERT(VARCHAR, 日付, 111), 1, 4)
, COUNT(*)
FROM テーブル名
GROUP BY SUBSTRING(CONVERT(VARCHAR, 日付, 111), 1, 4)
-- 年次(DATEPART)
SELECT DATEPART(YEAR, 日付)
, COUNT(*)
FROM テーブル名
GROUP BY DATEPART(YEAR, 日付)
