Mysql 寻找差异

标签 mysql

嗨,我有这样的数据

month | type  | passenger |
2     | 1     | 15        |
2     | 2     | 20        |
2     | 2     | 18        |
3     | 2     | 10        |
3     | 1     | 15        |
3     | 1     | 25        |
4     | 2     | 30        |
4     | 1     | 16        |

我想按类型对两个月的乘客进行汇总,并找出两者之间的差异。例如。

SUM(passenger) as month2 where month=2 group by type

SUM((passenger) as month3 where month=3 group by type

这里是第二个月
类型1 = 15
类型2 = 38

第 3 个月
类型1 = 40
类型2 = 10

所以我想要像这样的结果

Difference
type1 = 25
type2 = 28

是否可以在一个查询中完成此操作?

感谢您的帮助和建议。

最佳答案

我将在 sum() 中使用条件语句来仅汇总给定月份的数据,并按类型分组:

select type, abs(sum(if(month=2,passenger,0))-sum(if(month=3,passenger,0))) as difference
from table
where month in (2,3)
group by type

关于Mysql 寻找差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43334573/

相关文章:

php - MySQL从指定时间范围内选择记录

Java jdbc从mysql中检索特定数据

php - 具有多个 where 子句的 select 查询是否在一个结果表中返回多个结果行?

php - 在 MySQL 中存储时间戳

php - 是否可以在不使用php的情况下计算mysql表的单个单元格中字符串的重复次数?

mysql - 具有许多表的复杂查询,这可以在一个查询中实现吗?

mysql - 在多个表中使用 min()

mysql - 与用户一起选择产品

mysql 导出到 csv 并连接相关字段

sql - 您会为用户名和密码使用一个或两个表吗?