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

阅读 2.2k
1 个回答

这样?

SELECT track_source_id, 1 - SUM(is_parsed) / COUNT(*)
FROM parse_monitoring
GROUP BY track_source_id
推荐问题