gpt4 book ai didi

MySQL LEFT JOIN 带顺序的日期

转载 作者:行者123 更新时间:2023-11-29 05:23:14 25 4
gpt4 key购买 nike

我有下表:

传感器:

id  name  key   code
1 s1 abc 123
2 s2 def 456
3 s3 ghi 789

测量:

id value sensor_id generated_at
1 1.0 1 2013-12-30 06:00:00
2 1.0 1 2013-12-30 06:01:00
3 1.0 1 2013-12-30 06:02:00
4 3.0 2 2013-12-30 07:00:00
5 3.0 2 2013-12-30 07:01:00
6 3.0 2 2013-12-30 07:05:00
7 5.0 3 2013-12-30 08:02:00
8 5.0 3 2013-12-30 08:03:00
9 5.0 3 2013-12-30 08:11:00
10 5.0 3 2013-12-30 08:15:00

我想做的是生成包含所有传感器数据的报告,并包括第一个和最后一个 generated_at 时间以接收测量值,因此 MySQL 请求的结果应该如下所示:

id name key code first_value_generated_at last_value_generated_at
1 s1 abc 123 2013-12-30 06:00:00 2013-12-30 06:02:00
2 s2 def 456 2013-12-30 07:00:00 2013-12-30 07:05:00
3 s3 ghi 789 2013-12-30 08:02:00 2013-12-30 08:15:00

如果有任何帮助,我将不胜感激。

最佳答案

我不认为 LEFT JOIN 在这里真的是必要的(只有当 sensors.idmeasurements.sensor_id)。 SQL 查询如下:

SELECT
s.id,
s.name,
s.key,
s.code,
m.first_value_generated_at,
m.last_value_generated_at
FROM sensors s JOIN
(SELECT
sensor_id,
MIN(generated_at) as first_value_generated_at,
MAX(generated_at) as last_value_generated_at
FROM
measurements
GROUP BY
sensor_id
) m ON s.id = m.sensor_id
ORDER BY
s.id

关于MySQL LEFT JOIN 带顺序的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23149912/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com