У меня есть данные в следующем формате:
Date. Comapany col3. Quantity
'01/01/2018', 'CompA','x','10'
'12/01/2017', 'CompA','x','20'
'11/01/2017', 'CompA','x','30'
'10/01/2017', 'CompA','x','40'
'01/01/2018', 'CompB','x','40'
'12/01/2017', 'CompB','x','20'
'11/01/2017', 'CompB','x','30'
'10/01/2017', 'CompB','x','40'
Я хочу перевести данные в приведенный ниже формат, я попытался повернуть, но это не сработало.
Может кто-нибудь помочь мне здесь? Все мои значения col совпадают
Требуемый вывод:
Company col3 date PeriodValue Lastmonth last_to_last
A x 01/01/2018 10 20 30
A x 12/01/2017 20 30 40
A x 11/01/2017 30 40 0
A x 10/01/2017 40 0 0
B x 01/01/2018 40 20 30
B x 12/01/2017 20 30 40
B x 11/01/2017 30 40 0
B x 10/01/2017 40 0 0
query
select inr.date,inr.Company,inr.col3 , sum(inr.value) as Periodvalue ,
sum(case when period=STR_TO_DATE(inr.period,'%m/%d/%Y') -INTERVAL 1 MONTH THEN inr.value else 0 end) as Lastmonth,
sum(case when period=STR_TO_DATE(inr.period,'%m/%d/%Y') -INTERVAL 2 MONTH THEN inr.value else 0 end) as last_to_last from (
select concat(SUBSTRING(Period, 5, 6),"/","01","/",SUBSTRING(Period, 1, 4)) as period,Company,Metric,v1 as value
from test2.q3) inr
group by inr.period,inr.Company,inr.Metric order by period
myoutput
Company col3 date PeriodValue Lastmonth last_to_last
A x 01/01/2018 10 10 30
A x 12/01/2017 20 20 20
A x 11/01/2017 30 30 30
A x 10/01/2017 40 40 40
B x 01/01/2018 40 40 40
B x 12/01/2017 20 20 20
B x 11/01/2017 30 30 30
B x 10/01/2017 40 40 40
моя проблема похожа на эту