SQL Union with Count () Funzione che non restituisce risultati previsti
Domanda
Sto cercando di restituire tutti gli utenti di Lync MSFT che hanno usato le conferenze vocali e il numero di volte che lo hanno usato. Devo usare il sindacato perché la tabella ha User1 e User2 che hanno partecipato entrambi alla conferenza che voglio in una colonna.
Ecco SQL:
SELECT U.UserUri,
COUNT(U.UserUri) AS COUNT
FROM SessionDetails AS S
INNER JOIN Users U
ON S.User1Id = U.UserId
WHERE MediaTypes = 48
GROUP BY U.UserUri
UNION
SELECT U.UserUri,
COUNT(U.UserUri) AS COUNT
FROM SessionDetails AS S
INNER JOIN Users U
ON S.User2Id = U.UserId
WHERE MediaTypes = 48
GROUP BY U.UserUri
I risultati restituiti hanno chiunque abbia partecipato a più di una conferenza che appare due volte nell'elenco, con due conteggi. In realtà, dopo averlo digitato, deve essere raggruppato tramite User1ID e User2ID. Se una persona avesse 9 conversazioni ma ne inviava solo 6, sarebbe utente1 6 volte e utente 2 3 volte, creando i due diversi raggruppamenti.
Ora so perché, ma qualche idea su come restituire nessun utente duplicato? Qualsiasi aiuto molto apprezzato!
Nessuna soluzione corretta