gpt4 book ai didi

MySQL:多个 SUMS 计算组合值 WHERE 条件

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

article_vote table
+------------+------+
| article_id | vote |
+------------+------+
| 1 | 3 |
| 1 | 1 |
| 1 | -1 |
| 1 | -2 |
+------------+------+

在 MySQL 5.5 中,我一直试图从上表中返回两个结果。 1. 所有反对票的总和。 2. 所有赞成票的总和。所以正面应该是4,负面应该是-3。投票字段没有 NULL 值。

此 SQL 不符合我的预期:

SELECT vote,
SUM(vote > 0) AS positive,
SUM(vote < 1) AS negative
FROM article_vote
WHERE vote_article_id = 50
GROUP BY vote

当我在上面的数据集上使用它时,它返回:

Array ( [vote] => -22 [positive] => 0 [negative] => 1 ) 

我哪里错了?

最佳答案

试试这个:

SELECT
SUM(if(vote > 0, vote, 0)) positive,
SUM(if(vote < 0, vote, 0)) negative
FROM article_vote
WHERE article_id = 1

结果:

| POSITIVE | NEGATIVE |
|----------|----------|
| 4 | -3 |

fiddle here .

关于MySQL:多个 SUMS 计算组合值 WHERE 条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19614591/

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