求一条sql语句查询每个小时内最大记录数
表结构,id,time测试数据1,2015-01-0208:01:352,2015-01-0208:25:183,2015-01-0213:07:004,2015-01-...
表结构,id,time
测试数据 1,2015-01-02 08:01:35
2,2015-01-02 08:25:18
3,2015-01-02 13:07:00
4,2015-01-02 13:59:18
5,2015-01-02 18:07:03
6,2015-01-04 16:01:00
结果是id为2,4,5,6的数据
取一个时间段的数据,如果在同一个小时内,那么取分钟数最大的数据(如1,2都是8点的数据,取分钟数据最大的id为2的数据) 展开
测试数据 1,2015-01-02 08:01:35
2,2015-01-02 08:25:18
3,2015-01-02 13:07:00
4,2015-01-02 13:59:18
5,2015-01-02 18:07:03
6,2015-01-04 16:01:00
结果是id为2,4,5,6的数据
取一个时间段的数据,如果在同一个小时内,那么取分钟数最大的数据(如1,2都是8点的数据,取分钟数据最大的id为2的数据) 展开
2个回答
展开全部
select t1.*
from test t1 inner join
(select convert(varchar(13),time,120) a,max(time) time
from test
group by convert(varchar(13),time,120)) t2
on t1.time=t2.time
想着写的,有问题再追问吧
from test t1 inner join
(select convert(varchar(13),time,120) a,max(time) time
from test
group by convert(varchar(13),time,120)) t2
on t1.time=t2.time
想着写的,有问题再追问吧
追问
测试如果两条数据时分秒都相同会有两个结果,少了一个去重复的条件
追答
重复的你要怎么处理,因为是不同的id,你直接再嵌套个关于重复的处理就可以了。。。
例如取大的id的
select t1.time,max(id)
from test t1 inner join
(select convert(varchar(13),time,120) a,max(time) time
from test
group by convert(varchar(13),time,120)) t2
on t1.time=t2.time
group by t1.time
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
把你的数据先转换成YYYYMMDDHHMMSS的样式,然后对其中的YYYYMMDDHH作GROUP BY后取最大值
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |