日期:2014-05-17  浏览次数:20560 次

如何根据同天生成流水号
T1
时间           姓名     性别
2012-01-01    A        男
2012-01-01    B        男
2012-01-01    C        男
2012-01-01    D        男
2012-01-02    E        男
2012-01-02    F        男
2012-01-03    G        男
2012-01-03    H        男
2012-01-04    I        男
结果
时间           姓名     性别      流水号
2012-01-01    A        男        1
2012-01-01    B        男        2
2012-01-01    C        男        3
2012-01-01    D        男        4
2012-01-02    E        男        1
2012-01-02    F        男        2
2012-01-03    G        男        1
2012-01-03    H        男        2
2012-01-04    I        男        1
根据时间按每天生成当天的流水号

------解决方案--------------------

--用姓名好像不太贴切,最好有id一类的有序的能标识的列替换到order by这里
select *,row_number() over(partition by 时间 order by 姓名)as 流水号 from T1

------解决方案--------------------

select *,
    序号=(select count(*) from tb where 时间 = t.时间 and 姓名 <= t.姓名)
from tb t