使用max(date)比较相似的列

时间:2016-06-09 18:43:56

标签: sql sql-server

我有一张如下表格

Column 1    Column 2    Column 3    Column 4
aaa         bbbb        ccc         1/1/16
aaa         bbbb        ddd         2/1/16
abc         def         ghi         1/1/16
abc         def         ihg         2/1/16

我希望输出为

Column 1    Column 2    Column 3    Column 4
aaa         bbbb        ddd         2/1/16
abc         def         ihg         2/1/16

那就是我希望结果为(column1,2,3)和max(column4)。 我正在使用SQL Server!我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:2)

您对所需内容的描述与数据不符。您似乎希望col4中具有最大日期的每一行对col1和col2成对。

您可以使用row_number()

来获取此信息
select t.*
from (select t.*,
             row_number() over (partition by col1, col2 order by col4 desc) as seqnum
      from t
     ) t
where seqnum = 1;

编辑:

如果对问题的解释是您希望第4列的整体值最大的行:

select t.*
from (select t.*,
             rank() over (order by col4 desc) as seqnum
      from t
     ) t
where seqnum = 1;

答案 1 :(得分:1)

有点不清楚你想要什么,但这会产生你的预期输出:

select * from mytable
where column4 = (select max(column4) from mytable)