【发布时间】:2020-08-25 12:00:43
【问题描述】:
我有一张收入表,其中包含
日期字段 |国家 |类别 |收入 |买家
我想计算收入的逐日百分比增长。我已经编写了以下代码并得到了正确的输出。但我不确定代码是否是通用的,是否适用于测试输入。
select a.date_field, a.curr_rev,
case when prev_revenue is null then 'None'
else round(((curr_rev - prev_revenue)/prev_revenue*100),2)
end as percent_change
from
(select a.date_field, a.revenue as curr_rev, b. revenue as prev_revenue from (
select date_field, sum(revenue) as revenue from revenue group by date_field) a
left join
(select date_field, sum(revenue) as revenue from revenue group by date_field) b
on a.date_field = b.date_field + interval 1 day) a
order by a.date_field
请告诉我代码是否正确
预期输出:
+------------+----------+----------------+
| date_field | curr_rev | percent_change |
+------------+----------+----------------+
| 2016-01-21 | 330 | None |
| 2016-01-22 | 240 |-27.27 |
| 2016-01-23 | 375 | 56.25 |
+------------+----------+----------------+
【问题讨论】:
-
您应该提供样本数据和期望的结果。
-
@GordonLinoff - 我已经在正文中分享了预期的输出。另外,我使用的是不支持窗口函数的旧版本的 MySQL。
标签: mysql sql database date group-by