
370
러닝 SQL
mysql> SELECT yearweek(payment_date) payment_week,
-> sum(amount) week_total,
-> round((sum(amount) - lag(sum(amount), 1)
-> over (order by yearweek(payment_date)))
-> / lag(sum(amount), 1)
-> over (order by yearweek(payment_date))
-> * 100, 1) pct_diff
-> FROM payment
-> GROUP BY yearweek(payment_date)
-> ORDER BY 1;
+--------------+------------+----------+
| payment_week | week_total | pct_diff |
+--------------+------------+----------+
| 200521 | 2847.18 | NULL |
| 200522 | 1977.25 | -30.6 |
| 200524 | 5605.42 | 183.5 |
| 200525 | 4026.46 | -28.2 |
| 200527 | 8490.83 | 110.9 |
| 200528 | 5983.63 | -29.5 |
| 200530 | 11031.22 | 84.4 |
| 200531 ...