Я использую alasql в node.js и не могу заставить работать соединение.
Здесь у вас есть фиктивные данные:
x = [
{ date: 20180501, price: 23, product: 'x' },
{ date: 20180501, price: 46, product: 'y' },
{ date: 20180502, price: 29, product: 'x' },
{ date: 20180502, price: 50, product: 'y' },
{ date: 20180503, price: 22, product: 'x' },
{ date: 20180503, price: 43, product: 'y' },
{ date: 20180504, price: 21, product: 'x' },
{ date: 20180504, price: 43, product: 'y' },
{ date: 20180505, price: 26, product: 'x' },
{ date: 20180505, price: 48, product: 'y' }]
Я хотел бы получить для каждого дня соотношение цены продукта y и продукта y.Итак, мой желаемый вывод:
desiredOutput = [
{ date: 20180501, price_ratio: 46/23},
{ date: 20180502, price_ratio: 50/29},
{ date: 20180503, price_ratio: 43/22},
{ date: 20180504, price_ratio: 43/21},
{ date: 20180505, price_ratio: 48/26}]
Я пытаюсь получить это с помощью следующего запроса:
alasql("select date, price_y/price_x as price_ratio from (select date, price as price_y from ? where product='y') as y join (select date, price as price_x from ? where product='x') as x on x.date=y.date", [x,x])
Но я не могу заставить его работать.Он не падает или что-то еще, но я получаю только price_x, а не соотношение.Вот что я получаю:
[
{ date: 20180501, price_x: 23 },
{ date: 20180502, price_x: 29 },
{ date: 20180503, price_x: 22 },
{ date: 20180504, price_x: 21 },
{ date: 20180505, price_x: 26 } ]
Я могу получить желаемый результат, запустив и сохранив каждый подзапрос отдельно, а затем выполнив объединение с использованием этих объектов, но я хотел бы знать, как это сделать, простовложенные подзапросы, за один вызов.
Буду признателен за любую помощь!