質問

関連する次の列を備えたロギングエントリテーブルがあります。 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

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

Sample Data Query Results

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top