我正在尝试返回所有使用过语音会议的 MSFT Lync 用户及其使用次数。我必须使用 UNION,因为该表有 User1 和 User2,他们都参加了我想要在一列中的会议。
这是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
返回的结果有参加过一次以上会议的任何人出现在列表中两次,总数为两次。实际上,在输入后它必须按 User1Id 和 User2ID 分组。如果一个人有 9 次对话但只发起了 6 次对话,那么他们将是 User1 6 次和 User2 3 次,从而创建两个不同的分组。
现在我知道为什么了,但是有什么想法可以不返回重复的 UserUri 吗?非常感谢任何帮助!