Postgresql 在postgres查询中重塑数据?

Postgresql 在postgres查询中重塑数据?,postgresql,Postgresql,我在CartoDB中有两个表,一个是社区区域多边形,另一个是这些社区区域中的站点 我知道每个站点的地区(borocd),因此我可以获得每种类型站点的计数列表,包括: SELECT borocd, type, count(*) FROM sites GROUP BY borocd, type 但我很难在一个查询中用类型1计数和类型2计数列更新“districts”表。我最后做了以下几点: UPDATE districts SET type1_sites = ( SELECT count(*)

我在CartoDB中有两个表,一个是社区区域多边形,另一个是这些社区区域中的站点

我知道每个站点的地区(borocd),因此我可以获得每种类型站点的计数列表,包括:

SELECT borocd, type, count(*) FROM sites GROUP BY borocd, type
但我很难在一个查询中用类型1计数和类型2计数列更新“districts”表。我最后做了以下几点:

UPDATE districts
SET type1_sites = (
  SELECT count(*) FROM sites
  WHERE type='type1' AND districts.borocd = sites.borocd
  GROUP BY borocd
  )
对第二类重复这一点。但我能做得更干净些吗

UPDATE districts
SET type1_sites = (
  SELECT count(*) FROM sites WHERE type='type1' AND districts.borocd = sites.borocd
), 
    type2_sites = (
  SELECT count(*) FROM sites WHERE type='type2' AND districts.borocd = sites.borocd
);

假设type1和type2有单独的列

嗯,对。这其实有点明显。我想我太累了。