Column1 | Column2
--------+--------
1 | 1
3 | 2
1 | 3
2 | 1
2 | 4
我想要 column1 的最大值,然后是 column2 的最大值:在这个例子中 --> 3 : 2
最佳答案
我会使用order by
:
select column1, column2
from t
order by column1 desc, column2 desc
fetch first 1 row only;
我看到您使用的是 MS Access,因此措辞如下:
select top (1) column1, column2
from t
order by column1 desc, column2 desc;
这种方法的唯一挑战是,如果数据中有重复项,它可能会返回多行。如果这是一个问题,请将唯一 ID 作为 order by
中的最后一个键:
order by column1 desc, column2 desc, id;
或者使用聚合:
select max(column1), max(column2)
from (select top (1) column1, column2
from t
order by column1 desc, column2 desc
) as t;
max()
仅用于将结果集减少到单行(在重复的情况下)。因为来自子查询的所有值都是相同的,所以几乎任何聚合函数都可以工作。
关于SQL 查询 : select max of 2 columns of same row,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50137926/