0

我想将一个简单的 SUM CASE WHEN 应用于我从 CSV 创建的表(在 DB Browser for SQLite 中)。目前我有以下代码:

Select user_id,
CASE Overall_Result
WHEN 'Fail' then 0 
WHEN 'Pass' then 1 else 0
END as "Case When"
from NewTable

这段代码给了我:

图片

但是,现在我想修改上面的代码,以便它对每个特定 user_id 创建的 CASE WHEN 列中的值求和。正如您在图像的第 1 行和第 2 行中看到的那样,我们在第二列中具有相同的 user_id 和相应的值。我想组合这些 user_id,所以在第 1 列中只有一个实例,然后在第二列中有这个 user_id 的所有相应值的总和。GROUP BY 似乎没有这样做..

4

2 回答 2

0

只需添加 sum() 和相关组,例如:

    Select user_id,
    sum( CASE Overall_Result
    WHEN 'Fail' then 0 
    WHEN 'Pass' then 1 else 0
    END )  as "Case When"
    from NewTable
    group  by user_id
于 2020-04-27T11:15:39.420 回答
0

你只是想要聚合吗?

select user_id,
       SUM(CASE Overall_Result WHEN 'Fail' then 0 WHEN 'Pass' then 1 else 0
           END) as sum_value
from NewTable
group by user_id;

或者,如果您只想要通过次数,您可以使用简写:

SUM(Overall_Result = 'Pass')
于 2020-04-27T11:14:49.057 回答