sql分组并提取每组的前一条,按照时间排序

select * from 
(
    select     row_number() over(partition by '分组' order by '日期') as rownum    -- 排序并分组
                    , *         -- 所需显示的字段
    from 表
) as T
where T.rownum = 1

对每组的数据按日期排序并加上行号
取出时只取行号为1,也就是第一条数据。
             这种方法,能同时一次对两个字段分组波,即两个字段内容相同为一组
可以的
逗号分开

select * from
(
select     row_number() over(partition by 'Gr1',‘Gr2’[, ...]
                                             order by 'Sort1', 'Sort2'[, ...]) as rownum    -- 排序并分组
, *         -- 所需显示的字段
from 表
) as T
where T.rownum = 1
 
我的意思是两字段唯一标示一条记录,不是在分组中分组
 
不是很明白你的意思
但是这不是分组中分组。。
这个只分组了一次,给每组的数据都加上rownum,再选取每组中的第一条
C1    C2    C3
1        A        2012
2        A        2013
1        B        2012
2        B        2013
...
C1是rownum, C2是分组条件,C3是排序条件
只选取C1 = 1 的
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值