Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何获得group by之后的总行数?_Sql_Postgresql - Fatal编程技术网

Sql 如何获得group by之后的总行数?

Sql 如何获得group by之后的总行数?,sql,postgresql,Sql,Postgresql,我想对一些数据进行分组,然后在将重复数据合并到组中后计算行数 数据: 要返回总计数=2吗 select count(*) ( select nb.idx group by nb.idx ) as test 首先想到的是这个 然后我看到有人这样做 选择count(*)over() 按nb.idx分组 我不确定我是否完全理解第二种方法,但我想尝试各种方法并比较各种方法的速度 使用计数(不同的idx) 请尝试下面的查询

我想对一些数据进行分组,然后在将重复数据合并到组中后计算行数

数据:

要返回总计数=2吗

 select count(*) (
             select nb.idx
             group by nb.idx
             ) as test
首先想到的是这个

然后我看到有人这样做

选择count(*)over() 按nb.idx分组

我不确定我是否完全理解第二种方法,但我想尝试各种方法并比较各种方法的速度

使用
计数(不同的idx)

请尝试下面的查询

select count(*), nb.idx from table_name
 group by nb.idx

是的,我刚刚意识到这一点。我在主查询中需要GROUPBY,但在这里我只是使用count,如果我删除GROUPBY子句,那么count(distinct)将返回总数,而不是每个组的计数。谢谢你的帮助
select count(distinct idx)
from tablname
select count(*), nb.idx from table_name
 group by nb.idx