求一条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的数据)
展开
 我来答
twvampire
推荐于2018-05-14 · TA获得超过3620个赞
知道大有可为答主
回答量:3029
采纳率:76%
帮助的人:2995万
展开全部
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

想着写的,有问题再追问吧
追问
测试如果两条数据时分秒都相同会有两个结果,少了一个去重复的条件
追答
重复的你要怎么处理,因为是不同的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
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
抄友灵70
2015-07-14 · TA获得超过183个赞
知道小有建树答主
回答量:441
采纳率:50%
帮助的人:188万
展开全部
把你的数据先转换成YYYYMMDDHHMMSS的样式,然后对其中的YYYYMMDDHH作GROUP BY后取最大值
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式