我有这样的表:
id_Seq_No emp_name Current_Property_value
-----------------------------------------------
1 John 100
2 Peter 200
3 Pollard 50
4 John 500
我想要特定员工的最大记录价值。
例如,John有2条记录seq_no 1,4。我想在单个查询中第4个seq_no Current_Property_Value。
Select
max(id_Seq_No)
from
t1
where
emp_name = 'John'
答案 0 :(得分:2)
要获得Current_Property_value
,只需按id_Seq_No
排序结果并获取第一个结果:
SELECT
TOP 1 Current_Property_value
FROM
table
WHERE
emp_name = 'John'
ORDER BY
id_Seq_No DESC
答案 1 :(得分:0)
这将为所有绑定的员工提供最高的
select top 1 with ties
id_Seq_No,emp_name,Current_Property_value
from
table
order by
row_number() over (partition by emp_name order by Current_Property_value desc)
答案 2 :(得分:0)
您可以将ROW_NUMBER
与CTE
一起使用。
<强>查询强>
;WITH CTE AS(
SELECT rn = ROW_NUMBER() OVER(
PARTITION BY emp_name
ORDER BY id_Seq_No DESC
), *
FROM your_table_name
WHERE emp_name = 'John'
)
SELECT * FROM CTE
WHERE rn = 1;