mysql 如何分组统计失败率?

有下面一个表:

CREATE TABLE `parse_monitoring` (
  `id` int NOT NULL AUTO_INCREMENT,
  `track_source_id` int NOT NULL,
  `is_parsed` int NOT NULL,
  `parsed_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`),
  KEY `index_parsed_at` (`parsed_at`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
  • track_source_id 表示『监测对象』
  • is_parsed 表示『是否解析成功』,0 表示解析失败,1 表示解析成功
  • parsed_at 表示『何时被解析』

图片.png

有这么一个需求:统计每个 track_source_id 解析失败率

我不知道怎么写出对应的查询 sql

阅读 1.9k
1 个回答

这样?

SELECT track_source_id, 1 - SUM(is_parsed) / COUNT(*)
FROM parse_monitoring
GROUP BY track_source_id
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏