【问题标题】:how to get count of total number of rows following a group by?如何获取分组后的总行数?
【发布时间】:2019-10-15 14:01:32
【问题描述】:

我想对一些数据进行分组,然后计算重复数据分组后的行数。

数据:

idx 
7706
7706
1000

想要返回总数 = 2

 select count(*) (
             select nb.idx
             group by nb.idx
             ) as test

首先想到的是这个。

然后我看到有人这样做

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

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

【问题讨论】:

    标签: sql postgresql


    【解决方案1】:

    使用count(distinct idx)

    select count(distinct idx)
    from tablname
    

    【讨论】:

    • 是的,我刚刚意识到这一点。我在主查询中需要 group by,但是在这里我只是使用 count 如果我删除 group by 子句,那么 count(distinct) 将返回总数而不是每个组的计数。感谢您的帮助
    【解决方案2】:

    试试下面的查询..

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-13
      相关资源
      最近更新 更多