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

MySQL按时间分组基于measure_name列计算成功率的实现方法

解决方案

你可以通过条件聚合实现该需求,按time字段分组后,分别提取每组内的总请求量和成功请求量计算即可。

示例SQL

SELECT 
  `time`,
  ROUND(
    (SUM(IF(measure_name = 'successVolume', `measure_value::bigint`, 0)) * 1.0 
    / NULLIF(SUM(IF(measure_name = 'volume', `measure_value::bigint`, 0)), 0)) * 100,
    1
  ) AS successRate
FROM 替换为你的实际表名
GROUP BY `time`
-- 如果只需要返回成功率为100%的记录,可打开下面的注释
-- HAVING successRate = 100.0
;

说明

  • 使用IF(或CASE WHEN)做条件判断,分别汇总同一时间下的成功量和总请求量
  • 乘以1.0是为了避免MySQL整数除法导致小数位丢失
  • NULLIF用来处理总请求量为0的场景,避免除零报错
  • ROUND(...,1)用于控制输出保留1位小数,和你预期的输出格式匹配,可按需调整小数位数

内容的提问来源于stack exchange,提问作者Robin S.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 13:15:04