我想用一句sql查询过去一段时间(例如3个月)内的每天的最后一条数据

hcsyvip 发布于 2017/07/06 13:31
阅读 2K+
收藏 0

@lazeyliu 你好,想跟你请教个问题:

  1. 我想用一句sql查询过去一段时间(例如3个月)内的每天的最后一条数据:数据很多,我只取每天或每小时最后一条数据。现在我用以下的sql,会报错,请问这个sql有错误吗?,或者还有其他方法吗?
  2. SELECT * FROM 表名 where 时间字段>'2017-03-01 00:00:00' and 时间字段>=DATE_SUB(DATE_FORMAT(时间字段,'%Y-%m-%d %H:40:00'),INTERVAL 1 MINUTE) group by DATE_FORMAT(时间字段,'%Y-%m-%d %H');
  3. 例如过去1个月会每过1分钟数据库里就会增加一条数据,一天就有1440条数据,一个月有44640条数据,我要达到的效果是,只取31条数据,这些数据是每隔一天取一条。
  4. 这个是数据,我还想知道,我用的那句sql语句有问题吗?
加载中
0
lazeyliu
lazeyliu

哦 还是有问题的,找最后的需要这样:
 

SELECT * FROM (SELECT * FROM 表名 

where

        时间字段>=开始时间

and 时间字段<=结束时间  order by id desc) temp

group by DATE_FORMAT(temp.时间字段,'%Y-%m-%d %H');

0
gavinking
gavinking
我觉得时间倒序,然后按天分组
0
艾恩
艾恩
建议加个冗余字段,亦或者冗余表
0
艾恩
艾恩
历史数据,是固定数据,没必要每次都要去查数据库。存档就好了。
返回顶部
顶部