Domanda

Ho la tabella di iscrizione di registrazione con le seguenti colonne: eventype, userid. Posso semplicemente riassumere i dati utilizzando la seguente query per ottenere un totale per ogni tipo di evento utente

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

Tuttavia, ho anche bisogno di avere un totale di esecuzione per ogni singolo eventtype indipendentemente dall'utente. Come faccio a farlo?

Saluti

È stato utile?

Soluzione

Penso che questo potrebbe essere quello che vuoi:

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

FROM    dbo.vSystemEventLog
GROUP BY EventType, EventUserID With Cube

Non sono del tutto sicuro di ciò che desideri: output di esempio e/o dati sarebbero molto utili.

Tuttavia, immagino che tu debba raggrupparlo al contrario in modo che i gruppi di queryEventUserId primo.

OK - Quindi ho creato questi dati di test e SQL. Penso che questo sia quello che vuoi.

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

Questo produce il seguente output:

Sample Data Query Results

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top