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

如何用SQL将PROPRIETAI='PRIVE'的长度合并到同一行求和?

实现PROPRIETAI='PRIVE'时合并长度求和到同一行的SQL方案

需求:当PROPRIETAI = 'PRIVE'时,将该类别下所有TYPE_STRUC对应的长度求和后展示在同一行;其他PROPRIETAI类别仍按原TYPE_STRUC分组展示。

当前使用的SQL代码:

SELECT
  PROPRIETAI,TYPE_STRUC,
  sum(ROUND((LGR_REEL))) as "Longueur (m)"
FROM SUPPORT
GROUP BY PROPRIETAI, TYPE_STRUC
ORDER BY CASE WHEN PROPRIETAI = 'FT' THEN 1 
              WHEN PROPRIETAI = 'FREE MOBILE' THEN 2 
              WHEN PROPRIETAI = 'PRIVE' THEN 3 
              ELSE 4
           END

当前问题:PRIVE类别会按不同TYPE_STRUC拆分成多行,不符合“同一行展示总和”的需求。

解决方案(通用SQL写法,适配多数数据库):

SELECT
  PROPRIETAI,
  -- 对PRIVE统一TYPE_STRUC值,实现合并分组
  CASE WHEN PROPRIETAI = 'PRIVE' THEN 'TOTAL PRIVE' ELSE TYPE_STRUC END AS TYPE_STRUC,
  SUM(ROUND(LGR_REEL)) AS "Longueur (m)"
FROM SUPPORT
GROUP BY 
  PROPRIETAI,
  -- 分组逻辑与SELECT中的CASE保持一致
  CASE WHEN PROPRIETAI = 'PRIVE' THEN 'TOTAL PRIVE' ELSE TYPE_STRUC END
ORDER BY 
  CASE PROPRIETAI 
    WHEN 'FT' THEN 1 
    WHEN 'FREE MOBILE' THEN 2 
    WHEN 'PRIVE' THEN 3 
    ELSE 4
  END,
  TYPE_STRUC

逻辑说明

  1. 通过CASE语句将PRIVE对应的所有TYPE_STRUC替换为同一个标识(示例中用'TOTAL PRIVE',也可改为空字符串或其他自定义文本),确保该类别下所有记录被归为同一分组。
  2. GROUP BY子句必须与SELECT中处理TYPE_STRUC的逻辑完全匹配,否则会出现分组不一致的错误。
  3. 排序逻辑保留原有优先级,新增TYPE_STRUC排序让结果展示更规整。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 00:45:33