在特定条件下如何分组和求和?

j13ufse2  于 2021-06-20  发布在  Mysql
关注(0)|答案(3)|浏览(392)

只有方法字段中有“part”时,我才需要得到posted字段的和。这里发布的是布尔值,方法是varchar。
在同一查询中还选择了其他字段,因此将条件移动到where子句不是一个选项。
这是我现在拥有的,但似乎不起作用。


# sum of posted

SELECT 
    SUM(CASE
        WHEN method = 'PART%' THEN posted
    END) AS posted_in_background
FROM
    matches_20180905171033
GROUP BY code
ORDER BY method;

编辑:在查询中添加分组依据和排序依据条件
这就是我得到的结果

当我执行常规选择时,列具有非零值

SELECT 
    posted
FROM
    matches_20180905171033;

bqujaahr

bqujaahr1#

这个怎么样-

SELECT 
    SUM(CASE
        WHEN method like 'PART%' THEN posted
    END) AS posted_in_background
FROM
    matches_20180905171033
GROUP BY code
ORDER BY method;
plicqrtu

plicqrtu2#

使用 WHEN method like 'PART%' 而不是 WHEN method = 'PART%'

of1yzvn4

of1yzvn43#

以防有人有同样的问题,使用 like 而不是 = 会解决的。


# sum of posted

SELECT 
    SUM(CASE
        WHEN method LIKE 'PART%' THEN posted
    END) AS posted_in_background
FROM
    matches_20180905171033
GROUP BY code
ORDER BY method;

相关问题