gpt4 book ai didi

mysql - 加入多个计数的mysql查询

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

我的 table :

锦标赛

 _______________________________________
| id | name | date |
|---------------------------|-----------|
| 12 | mytournament | 2016-01-01|
|---------------------------|-----------|

玩家

 ________________________
| idt | name | cat |
|-------------------|-----|
| 12 | john | A |
| 12 | bobby | A |
| 12 | anna | B |
| 12 | Fritz | B |
| 12 | george | C |
|-------------------|-----|

我需要一个返回以下内容的查询:

id | name | date | nr of cat A | nr of cat B | nr of cat C 

12 | mytournament | 2016-01-01 | 2 | 2 | 1

我在多重计数方面遇到问题...无法弄清楚如何加入查询。

select t.id, t.name, t.date, count(p.cat) as countA from tournaments t join players p on (t.id = p.idt)

但我不知道如何指定它应该只采用 cat = A 的计数以及如何添加 B 和 C 的额外计数。

任何帮助表示赞赏。谢谢

最佳答案

您想要一个经典的数据透视表。因此你的声明应该是这样的:

SELECT t.id, t.name, t.date,
COUNT(
CASE
WHEN p.`cat`='A'
THEN 1
ELSE NULL
END
) AS 'countA',
COUNT(
CASE
WHEN p.`cat`='B'
THEN 1
ELSE NULL
END
) AS 'countB',
COUNT(
CASE
WHEN p.`cat`='C'
THEN 1
ELSE NULL
END
) AS 'countC'
FROM tournaments t
INNER JOIN players p ON t.id = p.idt
GROUP BY t.id;

看看这个 Stack overflow question and its answer了解更多详情。

关于mysql - 加入多个计数的mysql查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41129330/

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