gpt4 book ai didi

SQL Server - 使用 max 和 group by 更新语句

转载 作者:行者123 更新时间:2023-12-02 08:17:36 25 4
gpt4 key购买 nike

我有一个 SQL Server 表,其中包含这样的列,但只填充了 Salary_ID 列:

Name: Salary
Salary_ID, TotalAmount

我有另一个具有这种格式的 SQL Server 表,并且填充了所有列:

Name: SalaryImport
Row_ID, Salary_ID, Amount

我正在尝试使用每个 salary_id 的最大 row_id 更新 Salary 表。目前,SalaryImport 中的每个 Salary_ID 都有很多实例,我只关心最近的一个,它由较高的数字 row_id 表示。

关于如何做到这一点的任何提示?我想我会运行一个 SQL 语句,但它分组太多(我可以从组中删除数量,因为它在选择中!):

select max(Row_ID), Salary_ID, Amount
from SalaryImport e
group by Row_ID, Amount

最佳答案

使用ROW_NUMBER 窗口函数

;with cte as
(
select row_number() over(partition by Salary_ID order by Row_ID desc) as rn,*
From yourtable
)
Update S
Set TotalAmount = c.Amount
From Salary s join cte c on s.Salary_ID = c.Salary_ID
Where RN = 1

关于SQL Server - 使用 max 和 group by 更新语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40489987/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com