2017-04-04 93 views
0

我在表格中有以下数据。从重复项计算唯一值

Uid | comm | status 
------------------- 
12 23  eve 
15 23  eve 
20 23  mon 
12 23  mon 
20 23  eve 
17 23  mon 

如何查询得到下面的结果,以避免重复,并确保如果我计数“EVE” uid和相同的UID出现在“星期一”再算上只UID对于“EVE”?

count | status 
------------------- 
3   eve 
1   mon 

感谢您的帮助!

回答

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 

Demo here

+0

它为我工作!谢谢! – dCoder