我需要显示每周与mysql的差异 Week Over Week Users
列。我的数据如下所示:
Date Users Week Over Week Users
06-01-2019 10 10
06-08-2019 15 15
06-15-2019 5 5
目前, Week Over Week Users
只反映了我在 Users
列。所需输出为:
Date Users Week Over Week Users
06-01-2019 10 10
06-08-2019 15 5
06-15-2019 5 -10
基本上,如果第二周的用户数增长到15个,那么我需要显示5个(就像上周以来的+5个用户一样,所以 new week Users - last week Users
将是公式)
这是我的密码:
(
SUM(
CASE
WHEN WEEK(`Date`) = WEEK(CURRENT_DATE()) THEN `Users`
ELSE 0
END
) - SUM(
CASE
WHEN WEEK(`Date`) = WEEK(CURRENT_DATE()) - 1 THEN `Users`
ELSE 0
END
)
)
但是它不工作,因为它复制了users列。
2条答案
按热度按时间qvtsj1bj1#
你想要什么
lag()
:6qftjkof2#
如果您运行的是mysql 5.x,其中的窗口函数
lag()
如果不可用,可以使用相关子查询来获取“previous”值: