Loading...Loading chart...
1WITH index_returns AS (
2 SELECT
3 instrument,
4 datetime,
5 close,
6 (close / FIRST_VALUE(close) OVER (PARTITION BY instrument ORDER BY datetime) - 1) * 100 AS cumulative_return,
7 ((close - LAG(close, 30) OVER (PARTITION BY instrument ORDER BY datetime)) /
8 LAG(close, 30) OVER (PARTITION BY instrument ORDER BY datetime) * 100) AS return_30d
9 FROM "@coindesk.indices.multi_assets_indices"
10)
11SELECT
12 datetime,
13 ROUND(MAX(CASE WHEN instrument = 'CD5-USD' THEN cumulative_return END), 2) AS cd5_total_return,
14 ROUND(MAX(CASE WHEN instrument = 'CD20SPOT-USD' THEN cumulative_return END), 2) AS cd20_total_return,
15 ROUND(MAX(CASE WHEN instrument = 'CD80-USD' THEN cumulative_return END), 2) AS cd80_total_return,
16 ROUND(MAX(CASE WHEN instrument = 'CD100-USD' THEN cumulative_return END), 2) AS cd100_total_return,
17 ROUND(MAX(CASE WHEN instrument = 'CD5-USD' THEN return_30d END), 2) AS cd5_30d_return,
18 ROUND(MAX(CASE WHEN instrument = 'CD20SPOT-USD' THEN return_30d END), 2) AS cd20_30d_return,
19 ROUND(MAX(CASE WHEN instrument = 'CD80-USD' THEN return_30d END), 2) AS cd80_30d_return
20FROM index_returns
21WHERE datetime >= '2022-10-04'
22GROUP BY datetime
23ORDER BY datetime DESC
24LIMIT 100