使用 GROUP BY 和 CASE WHEN 逻辑时如何去除空(或零)结果的结果?
一个假设的例子是:
SELECT City,
SUM(case when name2015 = 'Jane' then income2015 end) income2015_total,
SUM(case when name2020 = 'Jane' then income2020 end) income2020_total
from finaldata
GROUP BY City
拥有所有人的数据库。这将返回 3 列:城市、2015 年所有 Janes 的总收入以及 2020 年所有 Janes 的总收入。但是,即使没有 Janes,它也会返回所有城市的一行。这些城市的最后 2 列中将出现空结果。如何在查询中删除这些内容,以便只获取至少包含 1 个 Jane 的城市的行?
最佳答案
您需要这样的 WHERE 子句:
SELECT City,
SUM(case when name2015 = 'Jane' then income2015 end) income2015_total,
SUM(case when name2020 = 'Jane' then income2020 end) income2020_total
from finaldata
WHERE name2015 = 'Jane' OR name2020 = 'Jane'
GROUP BY City
关于MySQL Case When 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30995318/