不确定是不是因为我累了,但我似乎无法解决这个问题......
我正在寻找一个基于几个项目过滤数据的查询...
示例数据:
Business_Month ID Calls Transferred Loaded
11/1/2012 0:00 119118 226 16 12/19/12 15:56
12/1/2012 0:00 119118 333 17 1/15/13 23:54
1/1/2013 0:00 119118 284 6 3/13/13 17:49
1/1/2013 0:00 119118 284 6 3/20/13 13:03
1/1/2013 0:00 119118 284 6 3/20/13 13:25
2/1/2013 0:00 119118 219 8 3/20/13 13:25
3/1/2013 0:00 119118 17 0 3/20/13 13:03
3/1/2013 0:00 119118 17 0 3/20/13 13:25
11/1/2012 0:00 120327 216 13 12/19/12 15:56
12/1/2012 0:00 120327 211 12 1/15/13 23:54
1/1/2013 0:00 120327 255 8 3/13/13 17:49
1/1/2013 0:00 120327 255 8 3/20/13 13:03
1/1/2013 0:00 120327 255 8 3/20/13 13:25
2/1/2013 0:00 120327 166 9 3/20/13 13:25
3/1/2013 0:00 120327 13 2 3/20/13 13:03
3/1/2013 0:00 120327 13 2 3/20/13 13:25
对于每个具有最高加载日期的唯一ID,我想要返回的是每行一个月的一行...
示例输出:
Business Month ID Calls Transferred Loaded
11/1/2012 0:00 119118 226 16 12/19/12 15:56
12/1/2012 0:00 119118 333 17 1/15/13 23:54
1/1/2013 0:00 119118 284 6 3/20/13 13:25
2/1/2013 0:00 119118 219 8 3/20/13 13:25
3/1/2013 0:00 119118 17 0 3/20/13 13:25
11/1/2012 0:00 120327 216 13 12/19/12 15:56
12/1/2012 0:00 120327 211 12 1/15/13 23:54
1/1/2013 0:00 120327 255 8 3/20/13 13:25
2/1/2013 0:00 120327 166 9 3/20/13 13:25
3/1/2013 0:00 120327 13 2 3/20/13 13:25
我尝试了不同的东西,但似乎无法弄明白......我正在使用MS SQL Server ......
希望有人可以提供帮助。
谢谢!
答案 0 :(得分:1)
;WITH x AS
(
SELECT [Business_Month], ID, Calls, Transferred, Loaded,
rn = ROW_NUMBER() OVER
(PARTITION BY ID, [Business Month] ORDER BY Loaded DESC)
FROM dbo.yourtable
)
SELECT [Business Month], ID, Calls, Transferred, Loaded
FROM x
WHERE rn = 1
ORDER BY ID, [Business Month];
答案 1 :(得分:1)