我需要返回每个不同学生 ID 的第一条记录。在我的示例代码中,我有一个记录在同一日期发生了两个事件,而另一名学生在不同日期发生了多个事件。
我需要选择最早的日期,如果同一日期发生多个事件,则将最早的事件 ID 作为下一个标准。有什么好的方法可以做到这一点?
我在此数据集中大约有 35 列,但为了简洁起见,仅包含下面的前 5 列。
Data:
期望的结果:
示例代码如下。
CREATE TABLE #TEMP (
StudentID float,
SchoolID float,
StudentNameFull nvarchar(255),
IncidentID float,
IncidentDate date
)
INSERT INTO #TEMP (StudentID, SchoolID, StudentNameFull, IncidentID, IncidentDate)
VALUES
(1111111, 406, 'Smith,John', 123321, '20170501'),
(1111111, 406, 'Smith,John', 123322, '20170501'),
(2222222, 406, 'Jones,Tim', 654789, '20170501'),
(2222222, 406, 'Jones,Tim', 659872, '20170503'),
(2222222, 406, 'Jones,Tim', 478978, '20170508')
SELECT * FROM #TEMP
谢谢。