add remove language chart show hidden hide
db<>fiddle
donate feedback about
By using db<>fiddle, you agree to license everything you submit by Creative Commons CC0.
id day_1 day_2 day_3 day_4 day_5 day_6 day_7 day_8 day_9 day_10 day_11 day_12 day_13 day_14 day_15 day_16 day_17 day_18 day_19 day_20 day_others
123456 64.98 64.98 64.98 64.98 64.98 64.98 64.98 64.98 64.98 64.98 64.98 64.98 66.98 66.98 66.98 720.92 64.98 64.98 64.98 64.98 2140.56
223456 54.98 64.98 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
Variable_name Value
group_concat_max_len 1024
seq
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
@columns
SUM(CASE WHEN rn =1 THEN vals ELSE 0 END) AS "day_1",
SUM(CASE WHEN rn =2 THEN vals ELSE 0 END) AS "day_2",
SUM(CASE WHEN rn =3 THEN vals ELSE 0 END) AS "day_3",
SUM(CASE WHEN rn =4 THEN vals ELSE 0 END) AS "day_4",
SUM(CASE WHEN rn =5 THEN vals ELSE 0 END) AS "day_5",
SUM(CASE WHEN rn =6 THEN vals ELSE 0 END) AS "day_6",
SUM(CASE WHEN rn =7 THEN vals ELSE 0 END) AS "day_7",
SUM(CASE WHEN rn =8 THEN vals ELSE 0 END) AS "day_8",
SUM(CASE WHEN rn =9 THEN vals ELSE 0 END) AS "day_9",
SUM(CASE WHEN rn =10 THEN vals ELSE 0 END) AS "day_10",
SUM(CASE WHEN rn =11 THEN vals ELSE 0 END) AS "day_11",
SUM(CASE WHEN rn =12 THEN vals ELSE 0 END) AS "day_12",
SUM(CASE WHEN rn =13 THEN vals ELSE 0 END) AS "day_13",
SUM(CASE WHEN rn =14 THEN vals ELSE 0 END) AS "day_14",
SUM(CASE WHEN rn =15 THEN vals ELSE 0 END) AS "day_15",
SUM(CASE WHEN rn =16 THEN vals ELSE 0 END) AS "day_16",
SUM(CASE WHEN rn =17 THEN vals ELSE 0 END) AS "day_17",
SUM(CASE WHEN rn =18 THEN vals ELSE 0 END) AS "day_18",
SUM(CASE WHEN rn =19 THEN vals ELSE 0 END) AS "day_19",
SUM(CASE WHEN rn =20 THEN vals ELSE 0 END) AS "day_20",
SUM(CASE WHEN rn >20 THEN vals ELSE 0 END) AS "day_others"
@sql
SELECT id,SUM(CASE WHEN rn =1 THEN vals ELSE 0 END) AS "day_1",
SUM(CASE WHEN rn =2 THEN vals ELSE 0 END) AS "day_2",
SUM(CASE WHEN rn =3 THEN vals ELSE 0 END) AS "day_3",
SUM(CASE WHEN rn =4 THEN vals ELSE 0 END) AS "day_4",
SUM(CASE WHEN rn =5 THEN vals ELSE 0 END) AS "day_5",
SUM(CASE WHEN rn =6 THEN vals ELSE 0 END) AS "day_6",
SUM(CASE WHEN rn =7 THEN vals ELSE 0 END) AS "day_7",
SUM(CASE WHEN rn =8 THEN vals ELSE 0 END) AS "day_8",
SUM(CASE WHEN rn =9 THEN vals ELSE 0 END) AS "day_9",
SUM(CASE WHEN rn =10 THEN vals ELSE 0 END) AS "day_10",
SUM(CASE WHEN rn =11 THEN vals ELSE 0 END) AS "day_11",
SUM(CASE WHEN rn =12 THEN vals ELSE 0 END) AS "day_12",
SUM(CASE WHEN rn =13 THEN vals ELSE 0 END) AS "day_13",
SUM(CASE WHEN rn =14 THEN vals ELSE 0 END) AS "day_14",
SUM(CASE WHEN rn =15 THEN vals ELSE 0 END) AS "day_15",
SUM(CASE WHEN rn =16 THEN vals ELSE 0 END) AS "day_16",
SUM(CASE WHEN rn =17 THEN vals ELSE 0 END) AS "day_17",
SUM(CASE WHEN rn =18 THEN vals ELSE 0 END) AS "day_18",
SUM(CASE WHEN rn =19 THEN vals ELSE 0 END) AS "day_19",
SUM(CASE WHEN rn =20 THEN vals ELSE 0 END) AS "day_20",
SUM(CASE WHEN rn >20 THEN vals ELSE 0 END) AS "day_others"
FROM
(SELECT SUM(value) AS vals, id, DATE_FORMAT(date,"%Y-%m-%d") AS dt,
       ROW_NUMBER() OVER (PARTITION BY id ORDER BY date DESC) AS rn
FROM test_table
GROUP BY id, date) v
GROUP BY id;
id day_1 day_2 day_3 day_4 day_5 day_6 day_7 day_8 day_9 day_10 day_11 day_12 day_13 day_14 day_15 day_16 day_17 day_18 day_19 day_20 day_others
123456 64.98 64.98 64.98 64.98 64.98 64.98 64.98 64.98 64.98 64.98 64.98 64.98 66.98 66.98 66.98 720.92 64.98 64.98 64.98 64.98 2140.56
223456 54.98 64.98 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00