我有以下查询
;WITH tmp AS
(
SELECT *, ROW_NUMBER()
OVER
(PARTITION BY to_tel, duration, call_date
ORDER BY rates_start DESC) as rn
FROM ##TempTable
)
SELECT *
FROM tmp
WHERE rn = 1
ORDER BY customer_id, to_code, duration
Run Code Online (Sandbox Code Playgroud)
但我想修改它不会给我最大的rates_start,但是在某个日期之前的最大rate_start.有什么方法可以做到这一点吗?
Szy*_*mon 17
您可以WHERE在cte部分内添加.我不确定你是否还想call_date在这种情况下进行分区(我将其删除).PARTITION BY如果需要,更改零件.
;WITH tmp AS
(
SELECT *, ROW_NUMBER()
OVER
(PARTITION BY to_tel, duration
ORDER BY rates_start DESC) as rn
FROM ##TempTable
WHERE call_date < @somedate
)
SELECT *
FROM tmp
WHERE rn = 1
ORDER BY customer_id, to_code, duration
Run Code Online (Sandbox Code Playgroud)