SQL COUNT个COUNT

cry*_*tar 1 sql postgresql group-by count

我有一些我正在查询的数据.该表由两列组成 - 唯一ID和值.我想计算每个唯一值出现的次数(可以使用COUNT和GROUP BY轻松完成),但我希望能够计算出来.所以,我想看看有多少项出现两次,三次等.

所以对于以下数据(ID,val)......

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

中间步骤是(val,count)......

1,3
2,3
7,1

我想(count_from_above,new_count)...

3,2 - 由于三个在前一个表
1中出现两次,因为一个在上一个表中出现一次

有没有查询可以做到这一点?如果它有帮助,我正在与Postgres合作.谢谢!

Jos*_*ama 5

尝试这样的事情:

select
   times,
   count(1)
from ( select 
          id,
          count(distinct value) as times
       from table
       group by id ) a
group by times
Run Code Online (Sandbox Code Playgroud)