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

如何在PL/SQL中按Load Id分组计算错误占比及相关统计指标

实现按Load Id统计的SQL方案

假设你的表名为your_table,包含核心字段:Load_Id(分组依据)、Load_Item_Id(需统计的条目ID)、Is_Error(错误标识,比如1代表错误,0代表正常)。以下是通用的SQL实现方案:

基础统计SQL

SELECT
    Load_Id,
    COUNT(Load_Item_Id) AS Total_Load_Items,
    SUM(CASE WHEN Is_Error = 1 THEN 1 ELSE 0 END) AS Error_Count,
    ROUND(
        CASE WHEN COUNT(Load_Item_Id) = 0 THEN 0 
             ELSE SUM(CASE WHEN Is_Error = 1 THEN 1 ELSE 0 END) * 100.0 / COUNT(Load_Item_Id) 
        END,
        2
    ) AS Error_Percentage
FROM your_table
GROUP BY Load_Id
ORDER BY Load_Id;

代码解释

  • COUNT(Load_Item_Id):统计每个Load Id下的Load Item Id总数(自动忽略NULL值,如果Load_Item_Id不会为NULL,用COUNT(*)效率更高)。
  • SUM(CASE WHEN Is_Error = 1 THEN 1 ELSE 0 END):统计每个Load Id下的错误条目数,通过CASE语句将错误标识转换为1/0后求和。
  • ROUND(..., 2):将错误百分比保留2位小数,避免数值过长。外层CASE处理总数为0的情况,防止出现除数为0的报错。

适配不同场景的调整

  • 如果你的错误标识是文本类型(比如'Error'/'Success'),只需修改CASE条件:CASE WHEN Error_Status = 'Error' THEN 1 ELSE 0 END。
  • 如果需要给百分比添加%符号,可使用字符串拼接(不同数据库语法略有差异):
    • MySQL:CONCAT(ROUND(...), '%')
    • PostgreSQL:ROUND(...) || '%'
    • SQL Server:CAST(ROUND(...) AS VARCHAR) + '%'

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 15:14:56