gpt4 book ai didi

mysql - SQL : Count the number of occurrences occuring on output column and calculate some percentage based on the occurences

转载 作者:行者123 更新时间:2023-11-29 06:06:31 27 4
gpt4 key购买 nike

我的 SQL 查询获取固件的错误修复验证列表,例如def-456 是一张票,要求我对产品进行固件测试。 def-456 有几个记录结果的子任务。结果记录为:id:abc-123、abc-124、abc-125等(如下表所示)。这些相应的 id 具有“通过”或“失败”结果。我需要计算两个值---->1. 尝试次数:在下面的示例中,尝试次数为 3/5 ,有 3 次通过和 2 次失败(即通过/通过+失败),这里我可以使用 count() 方法,但不知道如何附加“/5”和2. 第一次尝试成功率:在以下示例中,abc-123失败,但abc-124通过,abc-125失败,但abc-126通过,abc-127通过,没有任何失败,这意味着我的成功率为:1比3(即1/3),如何在sql中显示这些值?这有点棘手,我无法找到逻辑。

这是我的 def-456 数据:

    value | id| 
--------------
fail | abc-123
pass | abc-124
fail | abc-125
pass | abc-126
pass | abc-127

这是我试图显示的o/p:

id   |   value | attempts| %for attempts  | 1st attempt
----------------------------------------------------
abc-123 fail | 3/5 | 60% | 1/3
abc-124 pass | 3/5 | 60% | 1/3
abc-125 fail | 3/5 | 60% | 1/3
abc-126 pass | 3/5 | 60% | 1/3
abc-127 pass | 3/5 | 60% | 1/3

最佳答案

我相信这就是您所需要的:

SELECT
a.id,
a.resolution,
b.*
FROM
Table1 a
CROSS JOIN
(
SELECT
CONCAT(SUM(aa.resolution = 'pass'), '/', COUNT(*)) AS attempts,
CONCAT((SUM(aa.resolution = 'pass') / COUNT(*)) * 100, '%') AS percent_attempts,
CONCAT(SUM(bb.mindate IS NOT NULL AND resolution = 'pass'), '/', SUM(resolution = 'pass')) AS first_attempt
FROM
Table1 aa
LEFT JOIN
(
SELECT
MIN(`date`) AS mindate
FROM
Table1
) bb ON aa.`date` = bb.mindate
) b

SQLFiddle Link

关于mysql - SQL : Count the number of occurrences occuring on output column and calculate some percentage based on the occurences,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11301083/

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