编写SQL实现测试分组统计(含无测试空组全量展示)
测试分组汇总统计实现方案
预期输出格式
name_of_the_group | all_test_cases | passed_test_cases | total_value numerical stability 4 4 80 memory usage 3 2 20 corner cases 0 0 0 performance 2 0 0
字段统计规则
name_of_the_group:全量展示所有测试分组,即便分组下没有对应测试用例也必须显示all_test_cases:对应分组内的测试用例总数量passed_test_cases:对应分组内状态为OK的测试用例数量total_value:对应分组内所有已通过测试的value值总和
实现SQL
SELECT g.group_name AS name_of_the_group, COUNT(c.id) AS all_test_cases, COUNT(CASE WHEN c.status = 'OK' THEN 1 END) AS passed_test_cases, COALESCE(SUM(CASE WHEN c.status = 'OK' THEN c.value END), 0) AS total_value FROM test_groups g LEFT JOIN test_cases c ON g.group_name = c.group_name GROUP BY g.group_name ORDER BY g.group_name;
逻辑说明
- 采用
LEFT JOIN关联分组表和测试用例表,保证所有分组都能被展示,不会因为没有对应测试用例被过滤 - 用条件判断筛选状态为OK的用例做统计,适配所有主流数据库类型
- 用
COALESCE处理空值,确保没有通过用例时total_value返回0而非空值
内容的提问来源于stack exchange,提问作者Volkan
相关产品推荐
相关产品推荐

