Я пытаюсь вычислить процентное изменение между средним значением датой диапазоном А по сравнению с диапазоном дат В.MySQL: Расчет процентного изменения от средних значений двух диапазонов
Например, сайт имеет 100 посетителей в течение диапазон дат A и 200 посетителей в диапазоне дат B, что дает увеличение на 100%.
Значения хранятся в одной таблице.
EDIT: значения посещения хранятся в одной таблице, URL-адреса хранятся во второй таблице, содержащей URL-адрес и идентификатор, который используется для объединения двух таблиц.
Мой запрос в его нынешнем виде является:
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%'
EDIT: Исправлены ошибки в примере запроса
Я понимаю, что мне нужно добавить что-то вроде:
(visitors1 - visitors2)/visitors2 *100
I 'точно не знаю, где
EDIT: Я строю приборную панель, нужный выход
URL | Количество посещений: 1 | Посещение диапазон 2 | Изменение в процентах
example.com | 100 | 200 | 100%
Извинения за ошибки в оригинальной публикации.
Вы можете сделать это в mysql, но запрос будет довольно нечитаемым. Можете ли вы просто написать запрос (например, у вас есть), чтобы вернуть числа посещений в периоды A и B, а затем сделать (A-B)/B * 100 на результат после его возврата из mysql? – Agrajag