Mysql 按同一列分组的两个记录集之和之间的差值

Mysql 按同一列分组的两个记录集之和之间的差值,mysql,sql,oracle,group-by,aggregation,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_am

我需要编写一个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

谢谢你,安多玛。这不是标准的SQL,对吗?我是否需要安装另一个插件来支持此查询?对我来说,这看起来相当标准-可能
-1*s_amount
更通常意味着sum函数中的Case子句。它是标准SQL代码吗?
sum(case…
是基本SQL的一部分,我所知道的所有数据库都支持开箱即用的SQL谢谢你和奥马尔。这不是标准的SQL,对吗?我需要安装另一个插件来支持这个查询吗?对我来说看起来相当标准-可能
-1*s_amount
更常见的意思是sum函数中的case子句。这是标准的SQL代码吗?
sum(case…
是基本SQL的一部分,我所知道的所有数据库都支持它
select  sum(case s_continent
            when 'Europe' then s_amount 
            when 'Asia' then -s_amount 
            end) as EuropeMinusAsia
from    Sales