为 6 个唯一列选择最新记录

Selecting the newest records for 6 unique columns

我有一个 table 的 6 种货币换算,它几乎每天更新。不幸的是,该软件的工作方式是插入新行而不是更新现有行。我之前的SELECT如下

SELECT FROM_CURRENCY_ID, XCHG_RATE 
FROM
(
SELECT TOP 6 FROM_CURRENCY_ID, XCHG_RATE 
FROM SHARED_CURRENCY_EXCHANGE 
WHERE NOT FROM_CURRENCY_ID = 'CAD' 
ORDER BY RECORD_CREATED desc
) t 
ORDER BY FROM_CURRENCY_ID

现在的问题是一些记录得到了更新,而另一些则没有,所以我的查询 returns 一种货币的重复值而一种货币没有任何值。我需要它来输出 6 个独特的 FROM_CURRENCY_IDs 和它们的 XCHG_RATE 以及最新的 RECORD_CREATED 日期

我一直在尝试使用 group by 来排除重复的行,但没有成功。

with x as 
(select row_number() over(partition by from_currency_id order by record_created desc) rn, * from shared_currency_exchange)
select from_currency_id, xchg_rate from x 
where rn = 1

这为最近的记录提供了行号 1,您可以在此条件下使用 cte。