如何计算每条记录并将其显示为每人的数字,SQL

时间:2012-03-14 03:52:29

标签: sql

我需要在表格中显示序列号列,列出作业历史记录表中人员的每条记录的计数。每个历史记录都有一个作业开始日期,该编号应按日期的时间顺序列出。 这就是我想要的样子 -

EmployeeID SeqNo. JobStartDate
A0001        1     2006/02/02
A0001        2     2008/04/01
A0001        3     2009/03/01
A0002        1     2005/01/01
A0002        2     2005/04/01
A0003        1     2006/09/01
A0003        2     2007/01/01
A0003        3     2008/01/01

1 个答案:

答案 0 :(得分:2)

如果您使用的是SQL Server 2005+或支持ROW_NUMBER() and PARTITION的任何其他版本的SQL,那么您可以执行以下操作

SELECT EmployeeID, 
    ROW_NUMBER() OVER (PARTITION BY EmployeeID ORDER BY JobStartDate) AS SeqNo,
    JobStartDate
FROM [TABLE]

row_number基于分区(其作用类似于GROUP BY)和ORDER BY创建唯一行。