问个sql的查询语句问题:
datetime value
2014-01-01 00:00 0.5
2014-01-01 00:01 0.9
...
2014-01-31 11:59 0.7
表里有每分钟的记录数据,我想查询一月份每天的最大值,sql语句应该怎样写?
即总共返回31条记录,每条记录的值为每天的最大值。
所用数据库为postgresql.
问个sql的查询语句问题:
datetime value
2014-01-01 00:00 0.5
2014-01-01 00:01 0.9
...
2014-01-31 11:59 0.7
表里有每分钟的记录数据,我想查询一月份每天的最大值,sql语句应该怎样写?
即总共返回31条记录,每条记录的值为每天的最大值。
所用数据库为postgresql.
2 回答832 阅读✓ 已解决
2 回答1.2k 阅读
3 回答773 阅读
1 回答848 阅读
1 回答475 阅读
基本就是先将时间转化为日期,然后根据日起分组求max。这里的转化我用的mysql是data()函数,其他数据库可能需要别的函数。
另外,我这个没加where语句,加上就可以限制显示一月份共31条了。
这个方法有个缺点,如果某一天一条记录都没有,那么查询出来不会显示这一天的记录。如果要显示的话啊需要用其他方法,等等我贴上来。
这是修改完的,原理是利用一个辅助表num,num中只有一列id,共31行分别为1-31。将筛选过的主表左连接至num表上即可保证,查出的记录数等于当月天数。其中没有记录的日期的max(value)为null,用ifnull转化为0即可。