gpt4 book ai didi

mysql - 使用sql中另一个表的计数函数从一个表中选择列

转载 作者:行者123 更新时间:2023-11-30 01:29:47 24 4
gpt4 key购买 nike

运行软件

runID   Release
1 X
2 X
3 Y
4 Z
5 Y
6 X
7 Y
8 Z
9 X
10 Z
<小时/>
testcase        

testID runID Result
T_1 1 PASS
T_2 1 FAIL
T_3 1 PASS
T_4 2 PASS
T_5 2 FAIL
T_6 3 PASS
T_7 4 FAIL
T_8 3 PASS
T_9 3 FAIL
T_10 5 PASS
T_11 5 FAIL
T_12 3 PASS
<小时/>

1) 从run_software表中我们可以了解X软件运行在runID的1,2,6,9

2) 获取 runID - 1 并进入测试用例表。这里我们有 7 个 testID,runID 为 1。我们需要使用按结果和 runID 分组来测量这 7 个 testID 中的 TC 计数和通过/失败的百分比。

目的:最终目标是通过考虑最大测试用例数来找到最新的 3 个版本及其 runID 以及通过百分比。

例如。如果“X”版本在 runID 1、2、3、4 上执行,分别有 10、12、9、21 个测试用例,我们应该考虑版本“X”的 runID 4 来测量“PASS %”

期望的输出:

considering PASS% is > 60
Release runID Result PASS %
X 1 PASS 66.66
Y 3 PASS 75
Z 4 FAIL 0
<小时/>

要理解

Release 'X' has runID's - 1, 2 , 6, 9 with 3, 2, 0 , 0 TestID's respecively
Hence, X finalized runID '1' with 66.66 as PASS% (2 PASS & 1 FAIL)

最佳答案

你的问题其实不是很清楚,但我猜应该是这样的:

SELECT r.Release, r.runID, (CASE WHEN subq.PassPerc >= 60 THEN 'PASS' ELSE 'FAIL' END) AS Result, subq.PASSPerc 
FROM run_software AS r
INNER JOIN (SELECT p.runID, (100 * p.passed / t.total) AS PASSPerc
FROM (SELECT runID, COUNT(*) AS passed FROM testcase WHERE Result = 'PASS' GROUP BY runID) AS p
INNER JOIN (SELECT runID, COUNT(*) AS total FROM testcase GROUP BY runID) AS t ON t.runID = p.runID
GROUP BY p.runID, p.passed, t.total) AS subq
ON subq.runID = r.runID
GROUP BY r.Release, r.runID, subq.PASSPerc

关于mysql - 使用sql中另一个表的计数函数从一个表中选择列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17609291/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com