postgresql常用查询

这篇博客展示了如何在SQL中进行数据的查重分组,包括按乡镇和村的组合进行聚合,以及结合河流信息进行复杂的数据整理。查询结果分别以东亭街道和东北塘街道为例,详细列出了各街道下属的社区和村庄,以及对应的河流信息。
摘要由CSDN通过智能技术生成

1.对数据进行查重分组

-- 查询表格中乡镇和村的分组
select distinct town, string_agg(distinct village,',' ORDER BY village) as village from 
shuizha GROUP BY town ORDER BY town
-- 数据如下
--  town                village
-- 东亭街道	东街社区,映月社区,柏庄村,门楼村
-- 东北塘街道	严埭社区,大马巷村,正阳村,锡通社区,锦阳村
-- 东港镇	东升村,东南村,东湖村,东青河村,勤新村,张缪舍村,新巷村,港东村,黄土塘村
-- 云林街道	云龙社区,春雷村,春雷社区
select  string_agg(distinct '{"label":"' || town_name || '","value":"' || town_code || '"}','') as town,
 '{"river":[' || string_agg(distinct '{"label":"' || river_name || '","value":"' || river_code || '"}',',') || ']}' as river
 from town_river GROUP BY town_name order by town_name

-- {"label":"东亭街道","value":"001"}	{"river":[{"label":"东亭港","value":"002"},{"label":"九里河","value":"014"},{"label":"冷渎港","value":"004"},{"label":"北兴塘河","value":"005"},{"label":"张周桥港","value":"031"},{"label":"柏东港","value":"032"},{"label":"桐桥港","value":"016"}]}
-- {"label":"东北塘街道","value":"003"}	{"river":[{"label":"严埭港","value":"009"},{"label":"农新河","value":"033"},{"label":"北兴塘河","value":"005"},{"label":"北横河","value":"010"},{"label":"寺头港","value":"013"},{"label":"锡北运河","value":"003"}]}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值