gpt4 book ai didi

mysql - 使用 Group-Function 和 Join 两个不同的时间戳来优化 MySQL 查询

转载 作者:行者123 更新时间:2023-11-29 19:30:04 25 4
gpt4 key购买 nike

我有不同的表,其中包含温度值和时间戳。我使用以下查询连接这些表:

SELECT UNIX_TIMESTAMP(l.TimeDate) time
, AVG(l.intemp)
, AVG(n.intemp)
, DATE_FORMAT(l.TimeDate, '%Y-%m-%d-%H') dates
FROM values.temps l
LEFT
JOIN values.net n
ON DATE_FORMAT(l.TimeDate, '%Y-%m-%d-%H') = DATE_FORMAT(n.TimeDate, '%Y-%m-%d-%H')
WHERE YEARWEEK('2017-01-17 00:00:00',1) = YEARWEEK(l.TimeDate,1)
GROUP
BY dates
ORDER
BY dates ASC

这个查询有点慢,但它可以工作并给我 1 周的值。那么如何优化呢?

最佳答案

我没有回复,因为实际上我正在努力思考如何用范围查询来表达你的 YEARWEEK 条件。

我认为这样的东西会起作用,但它拒绝使用“范围”。

SELECT * 
FROM my_table
WHERE dt BETWEEN CONCAT(STR_TO_DATE(CONCAT(YEARWEEK('2017-01-25'), ' Monday'), '%x%v %W'), ' 00:00:00')
AND CONCAT(STR_TO_DATE(CONCAT(YEARWEEK('2017-01-25'), ' Sunday'), '%x%v %W'), ' 23:59:59')

也许其他人可以发现我的学生错误。

+----+-------------+----------+------+---------------+------+---------+------+------+-------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+----------+------+---------------+------+---------+------+------+-------------+
| 1 | SIMPLE | my_table | ALL | dt | NULL | NULL | NULL | 100 | Using where |
+----+-------------+----------+------+---------------+------+---------+------+------+-------------+

关于mysql - 使用 Group-Function 和 Join 两个不同的时间戳来优化 MySQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41845790/

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