Я пытаюсь выяснить, как создать запрос SQL, который может вернуть одну агрегированную строку с несколькими столбцами на основе другой таблицы с несколькими строками. Для начала у меня будет довольно большая таблица с миллионами строк с данными заказа, где у меня для одного item_id может быть одна строка с валютой USD и одна строка с валютой EUR. Для каждой строки у меня также будут дополнительные данные, например, number_of_items. Эта таблица будет выглядеть примерно так:
Item_id Currency Value Nbr_of_items Total_nbr_of_items Item_share
1 USD 200 100 200 0,50
1 EUR 40 20 200 0,10
1 CNY 35 80 200 0,40
2 HKD 50 60 100 0,60
2 GBP 20 40 100 0,40
3 CNY 14 50 50 1,00
4 USD 10 30 30 1,00
Моя конечная цель - создать одну таблицу с одной строкой для каждого item_id, которая может содержать до 3 разных валют. Следующая таблица - это то, что я хотел бы создать, но не уверен, как бы я это сделал ... Есть идеи? Буду очень признателен за вашу помощь!
РЕДАКТИРОВАТЬ: просто обновил таблицу, так как я хотел бы иметь валюты в заказе на основе item_share, поэтому самый большой item_share должен быть currency_1, второй по величине item_share должен быть currency_2 et c.
Item_id Currency_1 Value_1 Nbr_of_items_1 Currency_2 Value_2 Nbr_of_items_2 Currency_3 Value_3 Nbr_of_items_3
1 USD 200 100 CNY 35 80 EUR 40 20
2 HKD 50 60 GBP 20 40 NULL NULL NULL
3 CNY 14 50 NULL NULL NULL NULL NULL NULL
4 USD 10 30 NULL NULL NULL NULL NULL NULL