2017-04-04 184 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