没有小组的按计数(catid)排序

时间:2017-02-11 15:31:04

标签: sql postgresql

我想要计算有多少行使用相同的catid并按总计命令查询。

id | catid | name
0  | 1     | foo
1  | 1     | bar
2  | 2     | paint

我已尝试COUNT(catid),但这需要GROUP BY,我不想压缩行。

我怎么能这样做?

2 个答案:

答案 0 :(得分:0)

你想要窗口功能吗?

select t.*, count(*) over (partition by catid) as cat_cnt
from t
order by cat_cnt, catid;

我应该注意,如果您不想查看总数,可以将窗口函数放在order by中:

select *
from t
order by count(*) over (partition by catid), catid

答案 1 :(得分:0)

也许您可以将GROUP BY作为单独的SELECT运行,然后加入?

E.g。

select orig.*, summ.totals
from t
join (select count(cat_id) totals 
         from t 
         group by cat_id) summ
on t.cat_id = summ.cat_id;