Postgresql postgres查询的子查询计数()

Postgresql postgres查询的子查询计数(),postgresql,gis,aggregate-functions,postgis,Postgresql,Gis,Aggregate Functions,Postgis,我有两个网络流量表,我加入其中并在地图上可视化 我正在尝试编写一个计数器,创建一个查询结果,其中包含特定IP地址在日志中出现的次数计数。我认为这将采取子查询的形式,返回主查询正在选择的特定行的行数 当我运行以下查询时,得到的错误是作为表达式使用的子查询返回了多行 select squarespace_ip_addresses.ip, squarespace_ip_addresses.latitude, squarespace_ip_addresses.longitude, st_SetSrid(

我有两个网络流量表,我加入其中并在地图上可视化

我正在尝试编写一个计数器,创建一个查询结果,其中包含特定IP地址在日志中出现的次数计数。我认为这将采取子查询的形式,返回主查询正在选择的特定行的行数

当我运行以下查询时,得到的错误是作为表达式使用的子查询返回了多行

select
squarespace_ip_addresses.ip,
squarespace_ip_addresses.latitude,
squarespace_ip_addresses.longitude,
st_SetSrid(ST_MAKEPOINT(squarespace_ip_addresses.longitude, squarespace_ip_addresses.latitude), 4326) as geom,
(select count(hostname) from squarespace_logs group by hostname) as counter,
squarespace_logs.referrer
from
squarespace_ip_addresses
left outer join
squarespace_logs
on
squarespace_ip_addresses.ip = squarespace_logs.hostname
向我建议的是select中的一个子查询,该子查询通过主查询输出进行过滤,并为每一行运行该查询


有人有什么见解吗?

将数据聚合到派生表中(在
FROM
子句中的子查询):


基本上,这是将三个表连接在一起,通过接受将返回两个列并连接它们来解决多个返回列的问题。是这样吗?为什么子查询中的
select hostname,count(*)
中需要
hostname
?我不明白为什么它不能仅仅是
选择count(*)
。基本上是的<子查询中的code>hostname用于与主表联接。如何扩展此功能以仅查询
count
大于给定数字的行?在末尾添加
where count>10
select
    a.ip,
    a.latitude,
    a.longitude,
    st_SetSrid(ST_MAKEPOINT(a.longitude, a.latitude), 4326) as geom,    
    c.count,
    l.referrer
from squarespace_ip_addresses a
left join squarespace_logs l on a.ip = l.hostname
left join (
    select hostname, count(*)
    from squarespace_logs
    group by hostname
    ) c on a.ip = c.hostname