如何在PostgreSQL(PgAdmin)的SQL代码中添加行政区名称?
解决方案
要在查询结果里同时展示行政区编码(borocode)和名称,分两种常见情况处理:
情况1:当前表自带行政区名称字段
如果public.uscb_acs_14to18_age表本身就有行政区名称字段(比如字段名叫boroname),直接把这个字段加到查询列表里,同时同步添加到GROUP BY子句中即可:
SELECT borocode, boroname, SUM(totpop), SUM(sq_miles), SUM(totpop) / SUM(sq_miles) AS pop_density_pr_sqm FROM public.uscb_acs_14to18_age GROUP BY borocode, boroname
情况2:行政区名称存在单独的维度表中
如果行政区名称保存在另一张维度表(比如public.boroughs,包含borocode和boroname字段),需要通过JOIN关联两张表后再查询:
SELECT a.borocode, b.boroname, SUM(a.totpop), SUM(a.sq_miles), SUM(a.totpop) / SUM(a.sq_miles) AS pop_density_pr_sqm FROM public.uscb_acs_14to18_age a JOIN public.boroughs b ON a.borocode = b.borocode GROUP BY a.borocode, b.boroname
注意:
- 把示例里的
boroname和维度表名称替换成你实际用到的字段名和表名 GROUP BY子句必须包含所有非聚合的查询字段,也就是borocode和行政区名称字段
内容的提问来源于stack exchange,提问作者Bjoern Erik F. Riechmann
相关产品推荐
相关产品推荐

