2011-05-24 37 views
0

我有一個表user_id,time_stamp和活動,我用它來記錄審計跟蹤的用戶操作。計數問題

如何計算唯一的user_id其中time_stamp = 0時的數目,當可能有多個這樣的行,僅在活動文本中有所不同?

回答

4

聽起來像是你需要使用:

SELECT COUNT(DISTINCT t.user_id) 
    FROM YOUR_TABLE t 
    WHERE t.time_stamp = 0 
GROUP BY t.activity 
+0

+1和答案。謝謝。順便說一句,爲什麼我需要「分組」? – Mawg 2011-05-24 12:25:43

+0

@Mawg:「GROUP BY」爲聚集函數提供上下文(在本例中爲「COUNT」),否則計數將針對表中的所有記錄。 – 2011-05-24 14:33:51

+0

我不認爲這真的有效。按活動分組意味着對於每項獨特的活動,您可以獲得不同用戶的數量。放下這個組,它就會工作。 – jmoreno 2011-05-24 16:03:54

1
select count(*) 
FROM (select t.user_id, count(*) actions 
     FROM table t 
     where t.time_stamp = 0 
     group by t.user_id) u 

應該爲你做到這一點(不是最直接的方法,但它顯示瞭如何做幾個不同的東西)。

+0

+1謝謝你的幫助 – Mawg 2011-05-24 13:13:37