使用排除条件计数出现次数

gstyhher  于 2021-07-29  发布在  Java
关注(0)|答案(1)|浏览(873)

我有一张table

City     ID
Austin   123
Austin   123
Austin   123
Austin   145
Austin   145
Chicago  12
Chicago  12
Houston  24
Houston  45
Houston  45

现在我要计算所有具有不同id的花旗的出现次数,因为芝加哥只有一个id(=12),所以我对芝加哥不感兴趣,它不应该出现在结果集中,应该如下所示:

city      Id   Occurrences
Austin   123   3
Austin   145   2
Houston   34   1
Houston   45   2

我能用它给自己一个概述

select city, Id from Table
group by city, Id

但我不知道如何只选择一次有不同的ID和计数他们。
有人能帮帮我吗?

6tdlim6h

6tdlim6h1#

可以使用窗口函数和聚合:

select city, id, occurences
from (
    select city, id, count(*) occurences, count(*) over(partition by city) cnt_city
    from mytable
    group by city, id
) t
where cnt_city > 1

相关问题