2010-03-11 89 views
1

我有一些我正在查詢的數據。該表由兩列組成 - 一個唯一的ID和一個值。我想統計每個唯一值出現的次數(這可以通過COUNT和GROUP BY輕鬆完成),但我希望能夠對此進行計數。所以,我想看看多少個項出現兩次,三次,等SQL COUNT COUNT

所以對以下數據(IDval)...

1,2
2,2
3,1
4,2
5,1
6,7
7,1

中間步驟將是(valcount)...

1,3
2,3
7,1

我想有(count_from_abovenew_count )...

3,2 - 因爲3在前面的表中出現兩次
1,1 - 因爲在前面的表中出現一次

是否有任何查詢可以做到這一點?如果有幫助,我正在與Postgres合作。謝謝!

回答

5

嘗試這樣:

select 
    times, 
    count(1) 
from (select 
      id, 
      count(distinct value) as times 
     from table 
     group by id) a 
group by times 
+0

良好的通話!許多人都在尋求幫助。我有別名問題... – 2010-03-11 05:41:22