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

如何用单条SQL查询获取表各列最大值(SQLite、Flask-SQLAlchemy场景)

问题原因

你之前调用的MAX(col1, col2, col3)是SQLite的多参数比较语法,作用是返回每一行中col1、col2、col3三个字段的最大值,所以得到的是每行的最大值结果,和你要的「每列全局最大值」需求不符。

正确实现方式

原生SQL写法

直接在查询中分别为每一列调用MAX函数即可,单条语句就能返回结果:

SELECT MAX(col1) AS max_col1, MAX(col2) AS max_col2, MAX(col3) AS max_col3 FROM 你的表名;

执行后返回的单条结果依次就是col1、col2、col3的最大值,对应你示例数据就是(93, 88, 75),你可以自行转换为你期望的[(93,), (88,), (75,)]格式。

Flask-SQLAlchemy写法

假设你的表对应的模型类为TestTable,用func.max分别指定每列即可:

from sqlalchemy import func

# 执行查询
max_result = db.session.query(
    func.max(TestTable.col1).label("max_col1"),
    func.max(TestTable.col2).label("max_col2"),
    func.max(TestTable.col3).label("max_col3")
).first()

# 取值示例
col1_max = max_result.max_col1 # 93
col2_max = max_result.max_col2 # 88
col3_max = max_result.max_col3 # 75

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 16:15:04