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

如何在SQLite中查询大于另一表最大值的行?

问题分析与解决方案

原SQL语句无法运行的核心原因:WHERE子句中不能直接使用聚合函数(如MAX())。聚合函数是对数据集整体或分组计算的结果,而WHERE是在逐行筛选阶段执行,此时聚合结果还未生成,因此SQLite会抛出语法错误。

针对你的需求——筛选TBL1中a值大于TBL2中a的最大值的行,以下是SQLite兼容的有效写法:

方案一:子查询方式(推荐)

SELECT a, b
FROM TBL1
WHERE a > (SELECT MAX(a) FROM TBL2);

执行逻辑

  1. 子查询(SELECT MAX(a) FROM TBL2)会先独立执行,算出TBL2中a列的最大值(根据你的数据,该值为1)。
  2. 主查询用这个最大值作为筛选条件,从TBL1中选出a>1的行,最终结果为:
ab
23

方案二:交叉连接方式

效果与方案一完全一致,写法略有不同:

SELECT t1.a, t1.b
FROM TBL1 t1, (SELECT MAX(a) AS max_a FROM TBL2) t2
WHERE t1.a > t2.max_a;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 02:21:02