SQL 查询 : select max of 2 columns of same row

标签 sql database ms-access select

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/

相关文章:

从受密码保护的 Access 数据库进行 Excel VBA 查询

仅当查询包装为子查询时,MySQL重复列错误

mysql - 带触发器的嵌套选择内部插入

database - 在数据加载之前或之后创建 Oracle SQL 索引更好吗?

sql-server - 随机填充数据库

Java - Jackcess API,采用 .accde(MS Access) 格式

mysql - 编写此查询的更好/更有效的方法

java - 为 SQL 查询设计 Java 对象

php - 动态数据库连接symfony2

MySQL 查询选择当前月份错误