MS SQL Server 2008 時間間隔のグループ化
時間ベースのデータを扱う場合、時間や分などの時間間隔ごとにレコードをグループ化すると便利です。 Microsoft SQL Server 2008 では、GROUP BY
句を使用してこれを行う便利な方法が提供されます。
次のコードは、レコードを時間ごとにグループ化する方法を示しています。
<code class="language-sql">SELECT [Date] FROM [FRIIB].[dbo].[ArchiveAnalog] GROUP BY DATEPART(HOUR, [Date])</code>
レコードを 10 分間隔でグループ化するには、次の構文を使用します:
<code class="language-sql">SELECT MIN([Date]) AS RecT, AVG(Value) FROM [FRIIB].[dbo].[ArchiveAnalog] GROUP BY DATEPART(HOUR, [Date]), (DATEPART(MINUTE, [Date]) / 10) ORDER BY RecT</code>
ただし、このクエリはミリ秒を含む日時値を返します。ミリ秒を除外するには、次のコードをクエリに追加します:
<code class="language-sql">GROUP BY DATEPART(YEAR, DT.[Date]), DATEPART(MONTH, DT.[Date]), DATEPART(DAY, DT.[Date]), DATEPART(HOUR, DT.[Date]), (DATEPART(MINUTE, DT.[Date]) / 10)</code>
以上がMS SQL Server 2008 で時間間隔をグループ化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。