5 回答
TA贡献1860条经验 获得超9个赞
从结果集来看,并不需要用到分组,写法:
select * from t order by t.TimeStamp DESC,t.VINNumber,t.ChannelID
TA贡献1831条经验 获得超9个赞
select row_number() over( PARTITION BY VINNumber order by TimeStamp desc,ChannelID ) rid, * from table
TA贡献1942条经验 获得超3个赞
1 2015-05-27 11:01:00 02 09ff8127-54e1-40e2-899c-d
2 2015-05-27 11:01:00 03 09ff8127-54e1-40e2-899c-d
3 2015-05-27 11:01:00 04 09ff8127-54e1-40e2-899c-d
4 2015-05-27 11:01:00 05 09ff8127-54e1-40e2-899c-d
5 2015-05-27 11:00:00 01 09ff8127-54e1-40e2-899c-d
1 2015-05-27 10:57:00 01 53089042-ed6c-480f-acc8-c
2 2015-05-27 10:57:00 02 53089042-ed6c-480f-acc8-c
3 2015-05-27 10:57:00 03 53089042-ed6c-480f-acc8-c
4 2015-05-27 10:57:00 04 53089042-ed6c-480f-acc8-c
5 2015-05-27 10:57:00 05 53089042-ed6c-480f-acc8-c
你的 SQL 中 让 TimeStamp 与 ChannelID 排序时,就是错误的。
TA贡献1851条经验 获得超3个赞
1 2015-05-27 11:01:00 02 09ff8127-54e1-40e2-899c-d
2 2015-05-27 11:01:00 03 09ff8127-54e1-40e2-899c-d
3 2015-05-27 11:01:00 04 09ff8127-54e1-40e2-899c-d
4 2015-05-27 11:01:00 05 09ff8127-54e1-40e2-899c-d
5 2015-05-27 11:00:00 01 09ff8127-54e1-40e2-899c-d
1 2015-05-27 10:57:00 01 53089042-ed6c-480f-acc8-c
2 2015-05-27 10:57:00 02 53089042-ed6c-480f-acc8-c
3 2015-05-27 10:57:00 03 53089042-ed6c-480f-acc8-c
4 2015-05-27 10:57:00 04 53089042-ed6c-480f-acc8-c
5 2015-05-27 10:57:00 05 53089042-ed6c-480f-acc8-c
你的 SQL 中 让 TimeStamp 与 ChannelID 排序时,就是错误的。
当 TimeStamp 与 ChannelID 中的值不一样时,排序默认以你放在排序中的先后顺序决定的。
也就是你放在前面的 TimeStamp 决定最终的排序结果
例:
TimeStamp = 2015-05-27 11:00:00 和 ChannelID =01
与
TimeStamp = 2015-05-27 11:01:00 和 ChannelID =02
- 5 回答
- 0 关注
- 930 浏览
添加回答
举报