我的表有 2 列: Emp_Name
和 Emp_NR
。
一个 Emp_Name
值可能有 2 个不同的 Emp_NR
值。
我想创建一个 SELECT
语句,它只获取 Emp_Name
和 Emp_NR
的单个值
该语句应该类似于 Teradata 中的内容:
SELECT
Emp_Name,
Emp_NR
FROM Table
QUALIFY Row_Number OVER (PARTITION BY Emp_Name ORDER BY Emp__NR DESC) = 1
除此之外,我想获得分配给特定
Emp_NR
的最高 Emp_Name
。
最佳答案
你做的一切都对。
SELECT Emp_NR, Emp_Name
FROM (
SELECT ROW_NUMBER() OVER (PARTITION BY Emp_Name ORDER BY Emp_NR DESC) AS RN, Emp_Name, Emp_NR
FROM YourTable
) AS T
WHERE T.RN = 1;
这是正确的语法。
关于sql-server - SQL Server 中的类似 QUALIFY 的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29917686/