问题描述
price
2.22
10.32
0.4
22.95
8.56
price
1.57
3.0
0.35
9.52
5.56
我有两个包含产品销售价格的表格。一张表包含 10 月的数据,另一张表包含 11 月的数据。我正在寻找一个查询来生成从 10 月到 11 月产生的收入变化。
使用的查询:
select sum(a.price) - sum(b.price) as REVENUE_DIFF
from ((select sum(price) nov_data_part where event_type='purchase') a
UNION ALL (select sum(price) from oct_data_part where event_type='purchase') b);
这是在抛出错误。
解决方法
您可以使用cross join
:
select n.nov_sum - o.oct_sum as REVENUE_DIFF
from (select sum(n.price) as nov_sum
from nov_data_part n
where event_type = 'purchase'
) n cross join
(select sum(o.price) as oct_sum
from oct_data_part n
where event_type = 'purchase'
) o;
请注意:如果您根据月份将行拆分到不同的表中,那么您的数据模型就会出现真正的问题。