SQL Server查询应返回最大值记录

时间:2016-08-18 09:23:03

标签: sql-server tsql

我有这样的表:

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'

3 个答案:

答案 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_NUMBERCTE一起使用。

<强>查询

;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;