You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

获取MySQL表指定列最大值及对应日期的SQL查询需求

SQL查询:提取指定列的最大值及对应日期

需要从数据表tabela中,针对coluna1、coluna2、coluna4、coluna5这几列,分别找出每列的最大值,同时返回该最大值对应的日期。

原始数据表 tabela

datecoluna1coluna2coluna3coluna4coluna5
2023-04-01128895
2023-03-02201185155
2023-05-1412318212
2023-01-04145444546
2023-03-1554555375

期望查询结果

列名对应日期最大值
coluna12023-03-0220
coluna22023-01-0454
coluna42023-01-0445
coluna52023-03-1575

解决方案SQL

可以通过UNION ALL将各列的查询结果合并,实现列转行并提取最大值及对应日期:

SELECT 'coluna1' AS 列名, date AS 对应日期, coluna1 AS 最大值
FROM tabela
WHERE coluna1 = (SELECT MAX(coluna1) FROM tabela)
UNION ALL
SELECT 'coluna2' AS 列名, date AS 对应日期, coluna2 AS 最大值
FROM tabela
WHERE coluna2 = (SELECT MAX(coluna2) FROM tabela)
UNION ALL
SELECT 'coluna4' AS 列名, date AS 对应日期, coluna4 AS 最大值
FROM tabela
WHERE coluna4 = (SELECT MAX(coluna4) FROM tabela)
UNION ALL
SELECT 'coluna5' AS 列名, date AS 对应日期, coluna5 AS 最大值
FROM tabela
WHERE coluna5 = (SELECT MAX(coluna5) FROM tabela);

补充说明

  • 每个SELECT分支单独处理一列:通过子查询获取目标列的最大值,再筛选出对应行的日期和数值,手动指定列名标识
  • 用UNION ALL合并四个分支的结果,正好匹配期望的输出格式
  • 如果某列存在多个相同的最大值,该查询会返回所有对应的日期行;若只需一条结果,可根据数据库方言给每个SELECT添加限制(如MySQL用LIMIT 1,SQL Server用TOP 1)

内容的提问来源于stack exchange,提问作者Fernando

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 08:25:11