[英]SQL query : select max of 2 columns of same row
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;
这种方法的唯一挑战是,如果数据中有重复项,则可能返回多行。 如果这是一个问题,请按照以下order by
将唯一ID作为最后一个键:
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()
仅用于将结果集减少为单行(如果有重复的话)。 因为子查询中的所有值都相同,所以几乎任何聚合函数都可以使用。
对于您的示例数据,这将起作用:
SELECT Column1, Column2
FROM yourTable
WHERE Column1 = (SELECT MAX(Column1) FROM yourTable)
根据您的评论
然后那第二列的最大值
您可能想要这样:
SELECT Column1, MAX(Column2) as Column2
FROM yourTable
WHERE Column1 = (SELECT MAX(Column1) FROM yourTable)
GROUP BY Column1
这可以处理具有MAX(Column1)
多行的情况,并且仅返回具有MAX(Column2)
的行中的行
如果您希望整行的最大column1
,请尝试执行此操作...
SELECT TOP 1 *
FROM tablename
ORDER BY column1 DESC
样品日期
+---------+---------+
| Column1 | Column2 |
+---------+---------+
| 1 | 1 |
| 3 | 2 |
| 1 | 3 |
| 2 | 1 |
| 2 | 4 |
+---------+---------+
输出量
+----------+----------+
| Column1 | Column2 |
+----------+----------+
| 3 | 2 |
+----------+----------+
如果您想要column1
和column2
的最大值,请尝试此...
SELECT MAX(column1) as column1,
MAX(column2) as column2
FROM tablename
样品日期
+---------+---------+
| Column1 | Column2 |
+---------+---------+
| 1 | 1 |
| 3 | 2 |
| 1 | 3 |
| 2 | 1 |
| 2 | 4 |
+---------+---------+
输出量
+----------+----------+
| Column1 | Column2 |
+----------+----------+
| 3 | 4 |
+----------+----------+
我很难解释您的表,但是SQL中有内置函数可以帮助您查询。
SELECT MAX(column1), MAX(column2)
FROM table_name
WHERE condition;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.