如何在单张数据表中查询各列最大值并返回单行结果?
需求说明
现有数据表内容如下:
INST | MAXRATE | MAXDATE | TAX | -------------------------------- 1 | 1.5 | 17 | 0 | 2 | 0 | 20 | 0 | 3 | 0 | 35 | 0 | 4 | 0 | 45 | 18 | 5 | 0 | 50 | 1 |
需要分别计算每一列的最大值,合并成单行结果,期望输出为:
INST | MAXRATE | MAXDATE | TAX | --------------------------------- 5 | 1.5 | 50 | 18 |
查询写法
直接对每一列单独使用MAX()聚合函数即可,所有支持标准SQL的数据库(MySQL、PostgreSQL、SQL Server、Oracle等)都可以通用:
SELECT MAX(INST) AS INST, MAX(MAXRATE) AS MAXRATE, MAX(MAXDATE) AS MAXDATE, MAX(TAX) AS TAX FROM 替换为你的实际表名;
这个逻辑是对每一列独立计算最大值,不要求所有最大值来自同一行,刚好匹配需求:比如MAXRATE的最大值1.5在INST=1的行,TAX的最大值18在INST=4的行,MAXDATE的最大值50在INST=5的行,最终会把各列算出的最大值拼接成单行返回。
内容的提问来源于stack exchange,提问作者user15811966
相关产品推荐
相关产品推荐

