Home > Software design >  How to make pivot in SQL?
How to make pivot in SQL?

Time:07-17

How to reach the second table from the first using SQL Query?

1st Table:

Date CurrencyID Rate
2022/01/01 1 1000
2022/01/01 2 2000
2022/01/02 1 1000
2022/01/02 2 2000
2022/01/03 1 1000
2022/01/03 2 2000

2nd Table:

Date Currency1 Currency2
2022/01/01 1000 2000
2022/01/02 1000 2000
2022/01/03 1000 2000

CodePudding user response:

select *
from
(
    select Date, CurrencyID, Rate
) p
pivot (avg(p.Rate) for p.CurrencyID in ([1], [2])
) pvt
order by pvt.Date

Note that the avg(p.Rate) can be replaced by any other aggregate function - sum(), min(), max() etc. In this case the implication is that there is only one rate per currency per day, so there will be one row to aggregate (i.e. no actual aggregation happens).

  • Related