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

编写SELECT SQL查询计算分组状态完成占比(忽略空值,无值时返回空)

SQL查询解决方案

以下是满足需求的SQL查询语句:

SELECT
    `Group`,
    Region,
    CASE
        WHEN COUNT(Status) = 0 THEN NULL
        ELSE CONCAT(ROUND(
            (SUM(CASE WHEN Status = 'Done' THEN 1 ELSE 0 END) / COUNT(Status)) * 100,
            0
        ), '%')
    END AS `Status Done %`
FROM
    your_table
GROUP BY
    `Group`,
    Region
ORDER BY
    `Group`,
    Region;

核心逻辑说明:

  • COUNT(Status):自动忽略NULL值,统计分组内非空的Status记录总数。
  • SUM(CASE...):统计分组内状态为Done的记录数量。
  • CASE分支:当非空记录总数为0时返回NULL(对应结果空白);否则计算占比并格式化为带百分号的整数百分比(如需保留小数,可调整ROUND函数的第二个参数)。
  • 关键字处理:Group是SQL保留关键字,需用反引号(`)包裹避免语法错误。
  • 排序:ORDER BY确保结果按Group和Region有序排列,与期望输出一致。

将语句中的your_table替换为实际数据表名即可执行,结果会完全匹配需求中的期望输出。

内容的提问来源于stack exchange,提问作者Aldo Putra Setia

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 20:00:18