如何遍历SQL结果集并整合机器人测试结果统计数据
整合SQL查询获取机器人测试结果统计数据
你可以通过条件聚合的方式,一次性完成所有机器人的统计,无需逐个遍历查询,效率更高。以下是完整的SQL语句:
SELECT r.RobotId, SUM(CASE WHEN tr.testStatus = 'Active' THEN 1 ELSE 0 END) AS ActiveNum, SUM(CASE WHEN tr.testStatus = 'Failed' THEN 1 ELSE 0 END) AS FailedNum, COUNT(tr.RobotId) AS TotalNum FROM Robots r LEFT JOIN TestResults tr ON r.RobotId = tr.RobotId GROUP BY r.RobotId ORDER BY r.RobotId ASC;
代码说明:
- 使用
LEFT JOIN关联两张表,确保即使没有任何测试记录的机器人也会出现在结果中(对应统计数为0) SUM(CASE ...)通过条件判断分别统计Active和Failed状态的记录数COUNT(tr.RobotId)统计该机器人的所有测试记录总数(无记录时返回0)- 按
RobotId分组并排序,得到每个机器人的独立统计结果
查询结果示例(规范表格格式):
| RobotId | ActiveNum | FailedNum | TotalNum |
|---|---|---|---|
| R2-D2 | 8 | 12 | 20 |
| C3P0 | 4 | 2 | 9 |
这种方法替代了原有的循环查询思路,一次SQL执行就能得到所有需要的统计数据,避免了多次数据库请求的开销。
内容的提问来源于stack exchange,提问作者Dawson
相关产品推荐
相关产品推荐

