gpt4 book ai didi

mysql - 如何创建一个查询来满足两组不同的数据并生成依赖于 MySQL 中第一组数据的结果?

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

我正在尝试计算一组数据出现一个或多个失败的所有实例。

我也发现提出这个问题非常困难,所以我希望展示一个示例能够解释我想要实现的目标。

示例数据:

INSERT INTO test.answers (id, result_id, fail_all, fail_group) VALUES
(1,1,0,1), (2,1,0,1), (3,1,0,1), (4,1,0,0),
(5,2,1,0), (6,2,0,0), (7,2,1,0), (8,2,1,0), (9,2,1,0),
(10,3,0,1), (11,3,1,1), (12,3,0,1), (13,3,0,1), (14,3,0,1),
(15,4,0,0), (16,4,0,0), (17,4,0,1), (18,4,0,1), (19,4,0,0), (20,4,0,1),
(21,5,1,0), (22,5,0,1), (23,5,1,1), (24,5,0,1), (25,5,1,0), (26,5,0,1);

INSERT INTO test.results (id,team_id) VALUES
(1,1), (2,1), (3,1), (4,2), (5,2);

然后我运行以下查询:

SELECT
COUNT(IF(a.fail_all = 1,1,NULL)) AS count_fail_all,
COUNT(IF(a.fail_group = 1,1,NULL)) AS count_fail_group,
a.result_id
FROM test.answers AS a
GROUP BY a.result_id

结果:

count_fail_all, count_fail_group, result_id
0, 3, 1
4, 0, 2
1, 5, 3
0, 3, 4
3, 4, 5

我需要创建一个按 team_id 分组的查询,并计算每个结果的失败次数。如果结果有多个失败,则总体结果为失败。因此,如果上述查询中的结果数为 3(例如:第一个结果),那么它只能算作 1。现在可以忽略fail_group,因为我相信fail_all的相同解决方案也适用于fail_group。

我希望的结果是:

team_id, amount_of_fails, amount_of_fails_per_group
1, 2, 2
2, 1, 2

我希望有人能够帮助我创建我需要的查询?我什至不知道如何开始。让我知道我是否可以做任何事情来调整查询,因为我知道它没有得到很好的询问?

谢谢!

最佳答案

如果你想要那个输出。也许是这样的:

SELECT
r.team_id,
SUM(IF(a.fail_all = 1,1,0)) AS amount_fail_all,
SUM(IF(a.fail_group = 1,1,0)) AS amount_fail_group
FROM answers AS a
JOIN results AS r on r.id=a.result_id
GROUP BY r.team_id

这将为您提供以下输出:

team_id  amount_fail_all  amount_fail_group
1 2 2
2 1 2

关于mysql - 如何创建一个查询来满足两组不同的数据并生成依赖于 MySQL 中第一组数据的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10010688/

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