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

SQLite同表关联查询:按指定条件筛选并求和remote字段

解决方案:基于关联条件的SQL求和查询

没问题,我来帮你搞定这个查询需求!咱们可以通过两种常见的SQL写法来实现你的要求,下面分别说明:

方法1:使用子查询(直观易懂)

这种写法直接把你提到的“查询2”作为筛选条件嵌入到求和查询中,逻辑清晰,适合快速实现:

SELECT SUM(remote) AS total_remote
FROM Fields
WHERE unique_id = '30008'
  AND id IN (SELECT id FROM Fields WHERE unique_id = '30009' AND remote = 1);

逻辑解释:

  1. 子查询 (SELECT id FROM Fields WHERE unique_id = '30009' AND remote = 1) 会先筛选出符合条件的id列表(根据你的示例数据,这里得到的是1和2)
  2. 外层查询只统计unique_id=30008且id在上述列表中的记录,最后对remote字段求和(示例中对应24+5=29)

方法2:使用自连接(性能更优)

如果你的表数据量较大,使用自连接的方式通常会比子查询有更好的性能表现:

SELECT SUM(f2.remote) AS total_remote
FROM Fields f1
JOIN Fields f2 ON f1.id = f2.id
WHERE f1.unique_id = '30009' AND f1.remote = 1
  AND f2.unique_id = '30008';

逻辑解释:

  1. 把Fields表拆分成两个逻辑表:f1用来筛选unique_id=30009且remote=1的记录,f2用来筛选unique_id=30008的记录
  2. 通过id字段将两个表关联,确保只统计符合条件的id对应的f2表中的remote值
  3. 最后对关联后的f2.remote求和,得到结果

根据你的示例数据,两种方法都会返回29,完全符合你的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 03:42:11