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

如何查询数据库中capacity列数值组合和≥指定值的记录

解决方案:查询可组成总和≥指定值的记录

核心逻辑:只要某条记录所属的foreign_id分组的总capacity≥指定查询值,这条记录就符合要求。因为该分组的所有记录总和必然达标,这条记录自然属于这个符合条件的子集;而如果分组总容量都达不到指定值,那么任何子集的总和也不可能达标,无需返回。

对应的SQL查询如下:

WITH group_totals AS (
    SELECT 
        foreign_id,
        SUM(capacity) AS total_capacity
    FROM tableName
    GROUP BY foreign_id
)
SELECT t.*
FROM tableName t
JOIN group_totals gt ON t.foreign_id = gt.foreign_id
WHERE gt.total_capacity >= :target_value;

代码说明

  1. group_totals是临时结果集,用来计算每个foreign_id分组的总容量;
  2. 将原表与临时结果集关联,筛选出总容量≥指定值(:target_value)的分组下的所有记录;
  3. 把:target_value替换为实际需要的数值即可,比如5或9。

验证示例

  • 当指定值为5时:foreign_id=3的总容量为12≥5,因此返回d、e、f三条记录,符合需求;
  • 当指定值为9时:foreign_id=3的总容量12≥9,同样返回这三条记录,因为6+4+2=12≥9,每条记录都属于这个达标子集。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 17:25:37