win*_*sgm 2 sql sql-server sql-server-2008 greatest-n-per-group
我正在尝试搜索最近发生的一堆事务,但只希望每次事务返回一次.我对代码问题的尝试比我更好地解释了它.
SELECT
DISTINCT TransactionCode
, IdKey
FROM TransTable
WHERE TransactionCode IN (<massive list of ids...>)
AND ActionDate < GETDATE()
ORDER BY ActionDate DESC
Run Code Online (Sandbox Code Playgroud)
我想要每个事务代码的一个实例,按日期排序(也就是最近发生的那个事务),并返回idKey.思考?
SELECT TransactionCode,
IdKey
FROM
(
SELECT TransactionCode,
IdKey,
ROW_NUMBER() OVER(PARTITION BY TransactionCode
ORDER BY ActionDate DESC) AS rn
FROM TransTable
WHERE TransactionCode in (1,2,3) AND
ActionDate < GETDATE()
) T
WHERE rn = 1
Run Code Online (Sandbox Code Playgroud)