ORACLE КАК ПОЛУЧИТЬ ДАННЫЕ В ЭТОМ ФОРМАТЕ - PullRequest
1 голос
/ 01 апреля 2020

У меня есть такая структура таблицы в Oracle

Product_ID     Product_SKU    Product_Zone   Product_Price
  1              123              Zone1          10
  2              123              Zone2          12
  3              456              Zone1          13
  4              456              Zone2          14

Как я могу получить результат в горизонтальном формате, как этот

Product_SKU   Zone1_Price  Zone2_Price
  123               10          12
  456               13          14

Спасибо

1 Ответ

2 голосов
/ 01 апреля 2020

Вот простой способ агрегирования:

SQL> with test (product_id, product_sku, product_zone, product_price) as
  2    -- sample data
  3    (select 1, 123, 'zone1', 10 from dual union all
  4     select 2, 123, 'zone2', 12 from dual union all
  5     select 3, 456, 'zone1', 13 from dual union all
  6     select 4, 456, 'zone2', 14 from dual
  7    )
  8  select product_sku,
  9    max(case when product_zone = 'zone1' then product_price end) zone1_price,
 10    max(case when product_zone = 'zone2' then product_price end) zone2_price
 11  from test
 12  group by product_sku;

PRODUCT_SKU ZONE1_PRICE ZONE2_PRICE
----------- ----------- -----------
        123          10          12
        456          13          14

SQL>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...