時間ごとにレポートできるクエリを作成するには、まずテーブルを作成します。このテーブルの 1 つの列には時間情報を含まない日付が記録され、もう 1 つの列には時間が記録されます。以下の表には、さまざまな処理タイプを記録した列があります。たとえば、時間ごとの処理タイプの合計数を見つけることができます。
CREATE TABLE テスト
(StartTime DATETIME NOT NULL
DEFAULT CURRENT_TIMESTAMP,
StartDate DATETIME NOT NULL
DEFAULT CONVERT(DATETIME, CONVERT(CHAR(10),CURRENT_TIMESTAMP, 110)),
StartHour INT NOT NULL
DEFAULT Dパートを食べました(hh, CURRENT_TIMESTAMP ),
TranType INT NOT NULL
CONSTRAINT ck_TranType CHECK ( TranType IN
(
1, -- insert
2, -- update
3, -- delete
)
DEFAULT 1
)
GO
次に、テストデータを挿入します考えられるサンプルをシミュレートするには、
INSERT test (StartTime, TranType) VALUES (CURRENT_TIMESTAMP, 3)
INSERT test (StartTime, TranType) VALUES (CURRENT_TIMESTAMP, 2)
INSERT test (StartTime, TranType) VALUES (CURRENT_TIMESTAMP, 3)
GO
DECLARE @hr int
SET @hr = DATEPART(hh, DATEADD(hh,-1,CURRENT_TIMESTAMP) )
INSERT テスト (StartTime, TranType, StartHour) _
VALUES (DATEADD(hh,-1,CURRENT_TIMESTAMP), 3, @hr)
INSERT テスト (StartTime, TranType, StartHour) _
VALUES (DATEADD(hh,-1,CURRENT_TIMESTAMP), 1, @hr)
INSERT テスト (StartTime, TranType, StartHour) _
VALUES (DATEADD( hh, -1,CURRENT_TIMESTAMP), 2, @hr)
GO
次に、クエリを使用して、日別および時間別のトランザクションの合計数を検索します。
SELECT StartDate tran_day,
StartHour tran_hour
, CASE trantype WHEN 1 THEN 'insert'
WHEN。 2 THEN 'update'
WHEN 3 THEN 'delete'
ELSE 'unknown'
END trantype,
COUNT(*) tran_total
FROM
Test
GROUP BY
StartDate,
StartHour
,trantype
ORDER BY StartDate,
コンピューティングSUM(COUNT(*)) BY StartDate, StartHour
GO
テストを削除してテストテーブルをクリアします。
ドロップテーブルテスト
GO