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

咨询基于两个子查询执行计算的正确SQL语法

正确SQL写法说明

你原来的多子查询写法存在语法错误,因为两个子查询直接并列时,数据库无法确定如何匹配两组数据的关联关系。正确的做法是通过JOIN语句,将两个子查询按共同字段(此处为name)进行关联,因为两个子查询都基于data表且包含name字段。

修正后的SQL代码

SELECT X.calculation1, Y.calculation2
FROM
    (SELECT name, x/y as calculation1 FROM data) X
JOIN
    (SELECT name, a/b as calculation2 FROM data) Y
ON X.name = Y.name
WHERE X.calculation1 > 10;

补充说明

  • 若name在data表中是唯一标识,使用INNER JOIN(即上述代码中的JOIN)即可获取匹配结果;如果需要保留X中所有符合条件的记录(即使Y中无对应name的数据),可以替换为LEFT JOIN。
  • 也可以省略子查询,直接在主查询中计算两个字段,写法更简洁且性能更优:
SELECT x/y as calculation1, a/b as calculation2
FROM data
WHERE x/y > 10;

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 10:15:33