mysql - 按同一列分组的两个记录集的总和之间的差异

标签 mysql sql oracle group-by aggregation

我需要编写一个 SQL 查询来计算欧洲和亚洲之间的收入差异。我受到应用程序开发的限制,无法分两步计算(分别计算每个大陆的总数,然后计算差值)

这是数据库:

Sales(s_key, s_key, s_product, s_date, s_amount, s_quantity) 

Customer(c_key, c_name, c_city, c_country, c_continent)

你能帮我扩展这个计算欧洲收入的查询,以获得与亚洲收入的差异吗? 谢谢!

Select Sum(s_amount)
From Sales
Where c_continent = 'Europe'
Group By c_continent

最佳答案

select  sum(case s_continent
            when 'Europe' then s_amount 
            when 'Asia' then -s_amount 
            end) as EuropeMinusAsia
from    Sales

关于mysql - 按同一列分组的两个记录集的总和之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30395984/

相关文章:

mysql - 将 mysql 表导出到 csv,其中数据在列中包含换行符

mysql执行计划解释

MySQL:更改每个选定行的用户变量

java - 访问 sp 时出现 Callable statement 错误

sql - 如何在飞行路线表中获得最短路径

C# 日期时间 SqlNullValueException : Data is Null

php - 如何从一个表中检索数据并使用外键从另一个表中检索数据?

mysql - PHP SQLSTATE[42000] 语法错误或访问冲突 : 1064 in query

java - hibernate 无故插入

java - 尝试使用 OCI 连接到 Oracle 时 JVM 崩溃