Sql 为每个点返回的行数

Sql 为每个点返回的行数,sql,postgresql,gis,postgis,Sql,Postgresql,Gis,Postgis,我有两个点的数据集。我想计算表A中每个位置2km范围内表B中的点数,并将其存储为整数列 我使用下面的代码从A返回距离B 2公里以内的每个点,但我不确定如何在此结果中提取A的出现次数并将其存储到新列 select a.name, b.incident_zip from ny_air_bnb as a, nypubs as b where(st_transform(a.geom,2263) <-> st_transform(b.geom,2263) <= 2000) 选择a.

我有两个点的数据集。我想计算表A中每个位置2km范围内表B中的点数,并将其存储为整数列

我使用下面的代码从A返回距离B 2公里以内的每个点,但我不确定如何在此结果中提取A的出现次数并将其存储到新列

select a.name, b.incident_zip 
from ny_air_bnb as a, nypubs as b 
where(st_transform(a.geom,2263) <-> st_transform(b.geom,2263) <= 2000)
选择a.name,b.incident\u zip
来自纽约航空公司a,纽约酒吧b

其中(st_变换(a.geom,2263)st_变换(b.geom,2263)也许您只需要窗口函数:

select a.name, b.incident_zip, count(*) over (partition by a.name)
from ny_air_bnb a join
     nypubs as b 
     on (st_transform(a.geom,2263) <-> st_transform(b.geom,2263) <= 2000);

请提供样本数据和期望的结果。您所说的“事件发生次数”是什么意思?非常感谢这几乎正是我想要的!我只需要将结果count变量添加到它自己的列中。再次感谢!@BenGuilfoyle…我不理解你的评论。count在一个单独的列中。我想要那个“count”附加到ny_air_bnb columnCount的列显然是一个数值。请解释“附加”到列的含义。
update ny_air_bnb a
    set col = (select count(*)
               from nypubs p
               where st_transform(a.geom, 2263) <-> st_transform(p.geom, 2263) <= 2000
              );