我在桌子上有以下数据。
Uid | comm | status
-------------------
12 23 eve
15 23 eve
20 23 mon
12 23 mon
20 23 eve
17 23 mon
我如何查询以获得低于结果以避免重复,并确保我计算uid为" eve"同样的uid出现在" mon"然后只计算uid" eve"?
count | status
-------------------
3 eve
1 mon
感谢您的帮助!
答案 0 :(得分:2)
您可以使用以下查询来选择每个Uid
值:
SELECT Uid, MIN(status)
FROM mytable
GROUP BY Uid
<强>输出:强>
Uid MIN(status)
---------------
12 eve
15 eve
17 mon
20 eve
使用上述查询,您可以获得所需的结果:
SELECT status, count(*)
from (
SELECT Uid, MIN(status) AS status
FROM mytable
GROUP BY Uid ) AS t
GROUP BY status