首页 > 解决方案 > 如何在其他列中查找哪个条目具有最相同的值

问题描述

我需要找到其中城市最多的省份。

这是我的数据库的样子。

我想出的最佳解决方案是将表格连接在一起并仅选择省份和地点类型(我需要找到城市)。我是这样做的。

select wojewodztwo,typmsc
from wojewodztwa inner join
     powiaty
     on wojewodztwa.klwoj = powiaty.klwoj inner join
     gminy
     on powiaty.klpow = gminy.klpow inner join
     miejscowosci
     on gminy.klgm = miejscowosci.klgm inner join
     typymsc
     on miejscowosci.kltm = typymsc.kltm 

其中''wojewodztwo''是一列省份,''typmsc''是一列地方类型

看起来像这样

现在我需要找到一种方法来选择其中拥有最多城市的省份(只有一个)。我不知道如何在 typymsc 列中查找 city("miasto") 出现次数最多的省份

标签: sqlpostgresql

解决方案


在 typymsc 列中查找 city("miasto") 出现次数最多的省份

使用过滤、聚合order bylimit

select wojewodztwo, count(*) as num_cities
from wojewodztwa inner join
     powiaty
     on wojewodztwa.klwoj = powiaty.klwoj inner join
     gminy
     on powiaty.klpow = gminy.klpow inner join
     miejscowosci
     on gminy.klgm = miejscowosci.klgm inner join
     typymsc
     on miejscowosci.kltm = typymsc.kltm 
where typmsc = 'miasto'
group by wojewodztwo
order by count(*) desc
limit 1;

推荐阅读