【发布时间】:2012-03-15 13:50:42
【问题描述】:
我正在尝试计算日期范围 A 的平均值与日期范围 B 之间的百分比变化。
例如,网站在日期范围 A 有 100 名访问者,在日期范围 B 有 200 名访问者,增加了 100%。
这些值存储在一个表中。
编辑:访问值存储在一个表中,URL 存储在第二个表中,其中包含 URL 和用于连接两个表的 id。
我的查询是:
SELECT urls.url, DATE_FORMAT(test.timestamp, '%Y %m %d') AS timestamp,
(SELECT test.visits
FROM test, urls
WHERE test.url_id = urls.id
AND urls.url LIKE '%website%'
AND test.location LIKE '%gb%'
AND test.timestamp >='$startdate'
AND test.timestamp <= '$enddate'
) AS visitors1,
(SELECT test.visits
FROM test, urls
WHERE test.url_id = urls.id
AND urls.url LIKE '%website%'
AND test.location LIKE '%gb%'
AND test.timestamp >= DATE_SUB('$startdate', INTERVAL
DATEDIFF('$enddate','$startdate') DAY)
AND test.timestamp <= DATE_SUB('$enddate', INTERVAL
DATEDIFF('$enddate','$startdate') DAY)
) AS visitors2
FROM test, urls
WHERE test.url_id = urls.id
AND urls.url LIKE '%website%'
AND test.location LIKE '%gb%'
编辑:更正示例查询中的错误
我知道我需要添加如下内容:
(visitors1 - visitors2) / visitors2 *100
我只是不确定在哪里
编辑:我正在构建一个仪表板,所需的输出是
网址 |访问范围 1 |访问范围 2 |百分比变化
example.com | 100 | 200 | 100%
对原始发布中的错误深表歉意。
【问题讨论】:
-
您可以在 mysql 中执行此操作,但查询将相当不可读。你能像你一样写查询来返回A和B期间的访问次数,然后在从mysql返回结果后对结果执行(A-B)/B * 100?
标签: mysql