質問
関連する次の列を備えたロギングエントリテーブルがあります。 eventype
, userid
. 。次のクエリを使用してデータを要約して、各ユーザーイベントタイプの合計を取得できます
SELECT EventType, COUNT(EventUserID) AS Total, EventUserID
FROM dbo.vSystemEventLog AS SE
GROUP BY EventType, EventUserID
ただし、ユーザーに関係なく、個々のEventTypeごとに合計を実行する必要があります。どうすればこれを進めることができますか?
乾杯
解決
これがあなたが望むものかもしれないと思います:
SELECT IsNull(EventType,'SUMMARY') as [EventType],
IsNull(EventUserId, 'TOTAL') as [EventUserId],
COUNT(EventUserID) AS [Total]
FROM dbo.vSystemEventLog
GROUP BY EventType, EventUserID With Cube
あなたが何を望んでいるのか完全にはわかりません - サンプルの出力やデータが最も役立つでしょう。
ただし、クエリグループが次のようにグループ化する必要があると思います。EventUserId
最初。
OK-このテストデータとSQLを作成しました。これがあなたが望むものだと思います。
Create Table #t
(
EventType int,
EventUserId int
)
Insert Into #t
Select 100, 18 union all Select 100, 18 union all Select 100, 18
Insert Into #t
Select 101, 16 union all Select 101, 16 union all Select 101, 16
union all Select 101, 16 union all Select 101, 16 union all Select 101, 16
Insert Into #t
Select 101, 18 union all Select 101, 18 union all Select 101, 18 union all Select 101, 18
Insert Into #t
Select 102, 18 union all Select 102, 18
Select IsNull(Convert(varchar(50), EventUserId), 'SUMMARY') As [EventUserId],
IsNull(Convert(varchar(50), EventType), 'TOTAL') as [EventType],
Count(EventUserId) as [Total]
From #t
Group By EventUserId, EventType with cube
Order by 1
drop table #t
これにより、次の出力が生成されます。
所属していません StackOverflow