MySQL Case When 语句

标签 mysql

使用 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/

相关文章:

mysql - 如何在 mysql 中复制表行?

mysql - 各种锦标赛/竞赛类型(联赛、阶梯、单败/双败等)的数据结构

java - hibernate 时冗余数据多对一映射

mysql - 在mysql中将列转置为行

php - 不确定如何检查在 SELECT(CASE .. END) 情况下执行了查询的哪一部分

python - 使用子进程通过 Python 测试与 MySQL 的连接

php - 我正在尝试将一个文件上传到本地主机,但无法正常工作

mysql - 如何将 JasperReports 5.6 Equal Clause 函数设置为 IS NOT NULL

php - 使用 HTTP POST 登录表单

python - 在 Django 中迁移到 mysql