我在计算本周夏天和上周夏天的差值。这些值都存储在一个表中。
我已经有了当前和上周的单个值,但是如何在select中得到它们,这些值可以相互抵消,差异可以用百分比显示。
例如,输出必须显示:+10%或-10%,这取决于当前值是高于还是低于最后一个值。
我试过了,但总是出现错误:
SELECT views_current_week / views_last_week * 100 AS difference
FROM (
SELECT SUM(website_stats_homepage) as views_last_week
FROM website_stats
WHERE website_stats_date >= curdate() - INTERVAL dayofweek(curdate())+6 day
AND website_stats_date < curdate() - INTERVAL dayofweek(curdate())-1 day,
SELECT SUM(website_stats_homepage) as views_current_week
FROM website_stats
WHERE yearweek(DATE(website_stats_date), 1) = yearweek(curdate(), 1))
website_stats
1条答案
按热度按时间2izufjch1#
我做了一把快小提琴,你想怎么做就怎么做。你必须处理0个结果,因为它们会使分区崩溃。
http://sqlfiddle.com/#!9/b8b906/2号
所有的sql裂缝。我知道这可以短得多,优化,但我想我让它尽可能容易理解一个新手