postgresql—sql统计某个列在其他表中的出现次数

46scxncf  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(365)

我想计算表a到表b中某列的出现次数。
此查询生成第一个表
表a

select geo_address_id 
from favourite_address    
where rider profile_id = 1;

geo_address_id
--------------
     2
     8
     4

第二张table看起来像这样
表b

rider_profile_id | geo_addresses| counter
-----------------------------------------
        1              8             3
        1              2             3
        1              6             2
        1              4             2
        1              1             1
        1              5             1

geo\u address和geo\u address\u id指的是同一个东西。
我想数一数 geo_addresses_id 在第二张table上,结果是这样的
表c

geo_addresses | counter
-----------------------
      8
      2
      4

有序描述
我试图加入geo\u地址中的表,但出现了一些不明确的错误。

1u4esq0p

1u4esq0p1#

你只需要 join 以及 group by :

select fa.geo_address_id, count(b.geo_address_id)
from favourite_address fa left join
     b
     on a.geo_address_id = b.geo_addresses
where fa.rider_profile_id = 1 
group by fa.geo_address_id;

如果您限定查询中的所有列引用,则不会出现不明确的列引用问题。因此,对列引用进行限定是一种很好的做法。

相关问题