Question

J'ai une table d'entrée de journalisation avec les colonnes suivantes: eventype, userid.Je peux simplement résumer les données en utilisant la requête suivante pour obtenir un total pour chaque type d'événement utilisateur

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

Cependant, j'ai également besoin d'un total courant pour chaque type d'événement individuel, quel que soit l'utilisateur.Comment procéder?

Acclamations

Était-ce utile?

La solution

Je pense que c'est peut-être ce que vous voulez:

SELECT      IsNull(EventType,'SUMMARY') as [EventType],
            IsNull(EventUserId, 'TOTAL') as [EventUserId], 
            COUNT(EventUserID) AS [Total]

FROM    dbo.vSystemEventLog
GROUP BY EventType, EventUserID With Cube

Je ne suis pas tout à fait sûr de ce que vous voulez - un exemple de sortie et / ou de données serait très utile.

Cependant, je suppose que vous devez le regrouper dans l'autre sens pour que la requête soit groupée par EventUserId en premier.

Ok - j'ai donc créé ces données de test et SQL.Je pense que c'est ce que vous voulez.

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

Cela produit la sortie suivante:

Exemple de résultats de requête de données

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top