gpt4 book ai didi

mysql - 带有 WHERE 子句的 SELECT 多列计数

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

我正在尝试计算 2 个给定列的统计信息,但我想在给定统计信息的同一查询中写入多个计数。我怎样才能做到这一点?

这是我的代码,让您更多地了解我正在尝试做什么

SELECT
COUNT(DISTINCT `stats`.`rank` + `stats`.`level`) as `bronze`
FROM `stats`
WHERE `stats`.`rank` = 1 AND `stats`.`level` = 30;

问题是,我想在一个语句中有多个 WHERE 子句,这些子句对应于给定的 AS。类似的东西

SELECT
COUNT(DISTINCT `stats`.`rank` + `stats`.`level`) as `bronze`,
COUNT(DISTINCT `stats`.`rank` + `stats`.`level`) as `silver`
FROM `stats`
WHERE `stats`.`rank` = 1 AND `stats`.`level` = 30 ... as bronze,
`stats`.`rank` = 2 AND `stats`.`level` = 45 ... as silver ... etc

我该如何实现这个目标?

最佳答案

使用带有 CASE 表达式的条件聚合,大致如下:

SELECT
some_id,
COUNT(CASE WHEN rank = 1 AND level = 30 THEN 1 END) AS bronze,
COUNT(CASE WHEN rank = 2 AND level = 45 THEN 1 END) AS silver
FROM stats
GROUP BY some_id;

如果您确实想对整个表格进行统计,则无需使用GROUP BY

关于mysql - 带有 WHERE 子句的 SELECT 多列计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49226312/

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