我有一张如下表格
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!我怎样才能做到这一点?
答案 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)