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

如何在MySQL中计算重复数据的各状态占比百分比?

计算MySQL表中各Job的状态占比百分比

假设你的表名为job_status,可以用以下SQL查询实现需求:

SELECT
    job,
    ROUND(
        (SUM(CASE WHEN `final status` = 'Success' THEN 1 ELSE 0 END) / COUNT(*)) * 100,
        2
    ) AS `Success %`,
    ROUND(
        (SUM(CASE WHEN `final status` = 'Failed' THEN 1 ELSE 0 END) / COUNT(*)) * 100,
        2
    ) AS `Failed %`,
    ROUND(
        (SUM(CASE WHEN `final status` = 'Unknown' THEN 1 ELSE 0 END) / COUNT(*)) * 100,
        2
    ) AS `Unknown %`
FROM job_status
GROUP BY job;

语句说明:

  • COUNT(*):统计每个job对应的总行数(包含重复数据),作为占比计算的分母。
  • SUM(CASE ...):通过条件判断统计对应状态的行数,作为占比计算的分子。
  • ROUND(..., 2):将计算结果保留两位小数,保证百分比格式统一。
  • GROUP BY job:按job分组,实现每个job独立计算状态占比。

示例输出:

jobSuccess %Failed %Unknown %
Job A33.3333.3333.33
Job B50.0025.0025.00

如果某个job无对应状态(比如没有Failed记录),上述语句会返回0.00,符合预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 15:07:16