0

関連する次の列を含むロギングエントリテーブルがあります:eventypeuserid。次のクエリを使用してデータを簡単に要約し、各ユーザーイベントタイプの合計を取得できます

SELECT     EventType, COUNT(EventUserID) AS Total, EventUserID
FROM         dbo.vSystemEventLog AS SE
GROUP BY EventType, EventUserID

ただし、ユーザーに関係なく、個々のイベントタイプごとに現在の合計も必要です。どうすればこれを行うことができますか?

乾杯

4

1 に答える 1

3

私はこれがあなたが望むものかもしれないと思います:

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最初にグループ化されるように、逆にグループ化する必要があると思います。

わかりました-それで私はこのテストデータと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

これにより、次の出力が生成されます。

サンプルデータクエリ結果

于 2011-02-03T12:04:38.883 に答える