我很难抓住这个。
我有一个包含主机的表,每个表都有十几行,还有一个表 points ,这实际上是一个包含主机时间轴信息的表。
主持人有很多分,可以随着时间的推移转换为主持人条件的时间轴。
如何将其转换为将x 点与各自主机分组的SQL查询?
示例:
Host:
id:1
address: 123.456.7.8
name: FooBar
pickles: The good kind
timeline:
Point:
host_id:1
timestamp: 123456
parameter: 123
Point:
host_id:1
timestamp: 123456
paramter:456
重要提示:我还想限制此时间轴列中的条目数。
我一直在研究这个问题很长一段时间了,我会感激一些帮助。
答案 0 :(得分:0)
您可以执行
之类的子查询SELECT h.*, (SELECT COUNT(*) FROM points WHERE host = h.host) as points FROM hosts h
答案 1 :(得分:0)
看一下像
这样的例子 select id, address, name, pickles,timestamp,parameter from host
left join timeline on host.id = timeline.host_id
order by host.id
但是,如果一个主机可能有多次出现,我想看一个例子,你作为一个人从例子数据中得出如何匹配它们
答案 2 :(得分:0)
select * from hosts right join timeline where host.id = timeline.host_id
将返回所有点,主机信息在同一行。
您可以使用GROUP BY子句和COUNT函数通过host_id进行聚合并获取点数:
select count(host_id), hosts.id from hosts right join timeline where host.id = timeline.host_id group by host.id