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

基于SUM_WEIGHT条件筛选SQL查询结果行的实现求助

按SUM_WEIGHT条件筛选行的SQL实现

完整解决方案SQL

WITH temp_data AS (
    SELECT 
        ID, 
        WEIGHT, 
        ACC,
        ROW_NUMBER() OVER (PARTITION BY ID ORDER BY ID, WEIGHT asc, ACC asc) as ROWNUMBER,
        SUM(WEIGHT) OVER (PARTITION BY ID) as SUM_WEIGHT
    FROM TABLE1
)
SELECT *
FROM temp_data
WHERE (SUM_WEIGHT > 1 AND ROWNUMBER = 1) OR SUM_WEIGHT <= 1;

逻辑说明

你已经通过窗口函数算出了每个ID的行序号ROWNUMBER和总权重SUM_WEIGHT,只需在这个基础结果上添加过滤逻辑:

  • 当SUM_WEIGHT > 1时,仅保留对应ID下ROWNUMBER = 1的行(即你指定排序规则后的第一行)
  • 当SUM_WEIGHT <= 1时,保留该ID的所有行

结果匹配验证

执行上述SQL后会得到你期望的结果:

  • ID=4的总权重为2>1,只保留行序号为1的记录
  • ID=5的总权重为0.3<=1,两条记录全部保留
  • 其余ID的总权重均<=1,对应记录全部保留

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 07:03:35