我有两个表与网络流量,我加入和可视化在地图上。
我正在尝试编写一个计数器,该计数器创建一个查询结果,计数特定IP地址出现在日志中的次数。我认为这将采取子查询的形式,该子查询返回主查询所选择的特定行的行数。
当我运行以下查询时,我得到的错误是more than one row returned by a subquery used as an expression。
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中的一个子查询,它通过主查询输出对每一行运行该查询。
有人有洞察力吗?
发布于 2018-12-07 03:23:08
将数据聚合到派生表中( FROM子句中的子查询):
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.hostnamehttps://stackoverflow.com/questions/53662604
复制相似问题