gpt4 book ai didi

mysql - 如何更改查询中 sum 函数的值?

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

我有一个带有求和聚合函数的查询:

SELECT sum(case when result=1 then 1 when result=2 then 0)as final_result From results

我想将这部分 when result=2 then 0 更改为 when result=2 then final_result equals zero

这有可能吗?或者还有其他方法吗?

最佳答案

试试这个:

SELECT CASE WHEN cnt=sum THEN sum ELSE 0 END as Final_result
FROM
(
SELECT count(*) as cnt,
SUM(case when result=1 then 1 else 0 end) as sum
from results
) Temp

工作 Fiddle here .

解释:

内部查询选择记录总数和记录总和。那么如果这些计数和总和相等,则意味着所有值都为 1。

注意:删除了 when result=2 then 0 检查,因为查询将为 1 以外的任何值选择 0。因此无需检查result=2.

编辑:

要计算 10 个连续 1 的个数,您可以这样做:

SELECT SUM(CASE WHEN RN=10 THEN 1 ELSE 0 END) AS final_result
FROM
(
SELECT CASE WHEN result=1 THEN @row_number:=@row_number+1 ELSE @row_number:=0 END AS RN,
result
FROM results, (SELECT @row_number:=0) AS t
) Temp

样本 Fiddle here .

关于mysql - 如何更改查询中 sum 函数的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28690964/

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