[英]How to avoid duplicates for SUM( CASE WHEN ..THEN 1 ELSE 0 END)?
我有以下查询:
SELECT col.myId,
SUM( CASE WHEN tu.userId IS NOT NULL THEN 1 ELSE 0 END) AS uCount,
SUM( CASE WHEN g.grouptype != 12 THEN 1 ELSE 0 END) AS gCount
FROM myUserTable col
LEFT JOIN fooTable elem ON col.myId = elem.myId
LEFT JOIN barTable esc ON elem.anotherId = esc.anotherId
LEFT JOIN userTable tu ON esc.anotherId = tu.anotherId
LEFT JOIN grouTable g ON g.groupid = tu.groupid
GROUP BY col.myId
这里的问题是重复的userId
被计算了两次。 我想避免它。
我怎样才能实现它?
也许你想要COUNT(DISTINCT)
?
COUNT(DISTINCT tu.userId) AS uCount,
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.