我有下表
ID Name Activity date total time
1 AB 1/10/2015 209
1 AB 1/11/2015 1234
1 AB 1/12/2015 10
2 CD 1/10/2015 2347
2 CD 1/11/2015 0
2 CD 1/12/2015 0
2 CD 1/13/2015 5
3 EF 1/10/2015 53
3 EF 1/11/2015 14
4 XY 1/11/2015 76
我需要以下结果
ID Name Activity date total time
1 AB 1/10/2015 209
2 CD 1/10/2015 2347
3 EF 1/10/2015 53
4 XY 1/11/2015 76
基本上,我需要所有名称的第一个值,我使用下面的查询,但它给Name值的空白
SELECT distinct(Id),
FIRST_VALUE(Name) OVER (ORDER BY Id Asc) AS Name,
FIRST_VALUE(ActivityDate) OVER (ORDER BY Id Asc) AS Date,
FIRST_VALUE(TimeInQueue) OVER (ORDER BY Id Asc) AS Totaltime
FROM Historytable
GROUP BY Id,ActivityDate,Name
答案 0 :(得分:3)
使用Window function
SELECT ID,
NAME,
[Activity date],
total time
FROM (SELECT Row_number() OVER(partition BY Id ORDER BY [Activity date]) Rn,
ID,
NAME,
[Activity date],
[total time] from yourtable) A
WHERE rn = 1
或找到每min [Activity date]
的{{1}}日期,然后使用id
和Id
[Activity date]