Я использую SQL Workbench / J и хочу создать два столбца «web_sales» и «app_sales» (см. Операторы case), объединяющие данные о продажах из таблиц sales2019 и sales2020. Однако в моем текущем коде по-прежнему отображаются 2 записи для определенной комбинации элемент / член c в зависимости от того, поступают ли данные из таблицы 2019 или 2020. Как я могу объединить данные за 2019 и 2020 годы в одну запись (см. Желаемый результат)? Оператор group by, существующий вне подзапроса, не выполняет sh этого.
select *
from (
select id
,item
,member
,SUM(CASE WHEN platform = 'web' THEN revenue ELSE 0 END) AS web_sales
,SUM(CASE WHEN platform = 'app' THEN revenue ELSE 0 END) AS app_sales
from sales2019
group by id, item, member
union
select id
,item
,member
,SUM(CASE WHEN platform = 'web' THEN revenue ELSE 0 END) AS web_sales
,SUM(CASE WHEN platform = 'app' THEN revenue ELSE 0 END) AS app_sales
from sales2020
group by id, item, member) A
group by A.id, A.item, A.member
order by A.item asc;
Текущий вывод:
id item member web_sales app_sales
2 desk-blue y 132.5 374.6
2 desk-blue n 348.9 2597.9
2 desk-blue y 753.1 2209.9
2 desk-blue n 23.3 234.9
3 desk-brown y 245.4 271.2
3 desk-brown n 192.4 5295.8
3 desk-brown n 1.6 776.5
Желаемый результат:
id item member web_sales app_sales
2 desk-blue y 885.6 2584.5
2 desk-blue n 372.2 2832.8
3 desk-brown y 245.4 271.2
3 desk-brown n 194.0 6072.3