首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用组函数和两个不同的时间戳使用Join优化MySQL查询

使用组函数和两个不同的时间戳使用Join优化MySQL查询
EN

Stack Overflow用户
提问于 2017-01-25 15:31:11
回答 1查看 42关注 0票数 0

我已经得到了不同的表,其中有温度值和时间戳。我用下面的查询连接这些表:

代码语言:javascript
复制
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

这个查询有点慢,但它是有效的,并为我提供了一周的值。那么我该如何优化它呢?

EN

回答 1

Stack Overflow用户

发布于 2017-01-26 22:08:38

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

我认为像这样的东西可以工作,但它拒绝使用'range‘。

代码语言:javascript
复制
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')

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

代码语言:javascript
复制
+----+-------------+----------+------+---------------+------+---------+------+------+-------------+
| 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 |
+----+-------------+----------+------+---------------+------+---------+------+------+-------------+
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41845790

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档