Skill Note

平凡なエンジニアがメモ代わりにプログラミング, インフラ, ネットワークを書き綴るブログ

[SQL Server]データを期間別に集計する

      2020/01/09

SQL Serverで集計表を出力

日付をDATETIME型で管理している場合、CONVERT関数、DATEPART関数を使って、日、週、月、年別の集計結果を出力することができます。

 icon-chevron-right 週別の集計は日曜はじまりなので注意する

SQL Server 2016の教科書 基礎から実践まで学べる 開発編/松本美穂/松本崇博【合計3000円以上で送料無料】

集計方法

日次集計

-- 日次(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, 日付)

Google AdSense PC

Google AdSense PC

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

  関連記事

oracle
[Oracle]トリガーの実行順序を設定する方法

FOLLOWS句を使用して実行順序を設定する 1つの表に対して同レベル(タイミング)のトリガーを複数作成することはできますが、実行順序は保証されていません。 実 …

oracle
Oracle12cのPDBを自動起動にする方法

Oracle12cのプラガブル・データベース(PDB)は初期設定のままでは、毎回、手動で起動させる必要があります。 この記事ではOS起動時やOracle再起動時 …

oracle
Oracle 11g XEへのデータ移行方法を検討してみる

Oracleのデータ移行時は移行元と移行先の文字コードに注意する必要があります。 Windows環境のOracleでは「JA16SJIS」や「JA16SJIST …

oracle
[Oracle]Oracle Clientのアンインストール方法

Oracle Clientをレジストリを含め完全に削除することがありましたので、この記事では削除手順を記載します。 削除手順ではレジストリを変更しますので十分注 …

oracle
[Oracle]Data Pumpを使用したデータベースのバックアップ

Data Pump機能のexpdp/impdpコマンドを使用するとデータベース全体、スキーマ単位、表単位など対象範囲を指定したバックアップやリストアを行うことが …

sqlserer
[SQL Server]除算時の注意点

SQLServerで除算結果が小数になる場合 たとえば、1100グラムをキロに換算する場合は「1100 / 1000」で計算すれば「1.1kg」と求められるが …

oracle
[Oracle]インストールに失敗する原因と対処方法

Oracleインストールエラー時の確認事項 OracleのデータベースやクライアントをWindowsへインストール中に インストーラが途中で落ちたり、エラーが発 …

sqlserer
[SQLServer]日付文字列 + 時刻文字列をDATETIME型に変換する方法

SQLServerで日付文字列 + 時刻文字列をDATETIME型に変換する方法 日付と時刻を別のカラムに格納している場合に日時データとして扱いたい場合は CO …

oracle
[Oracle]端数処理、丸めの方法

ORACLEで数値の端数処理、数値丸めをする 数値を四捨五入する場合は、ROUND関数 数値を切り捨てる場合は、TRUNC関数 各関数の第2引数の値で、小数部、 …

db
[Database]データベースのバージョン/エディションを確認する方法

OracleとSQLServerのバージョン/エディションを確認 Oracle  SELECT * FROM V$VERSION SQLServer SELEC …