Суммирование с условием

146
20 декабря 2017, 22:58

Добрый день. Пишу SQL запрос, но не могу понять как реализовать. Есть некая база, в которой записаны ip, время и количество скачанной информации, выглядит примерно так:

217.182.132.29 17:12:34 22372
217.182.132.29 17:13:34 22372
217.182.132.29 17:17:34 22372
217.182.132.29 18:12:34 22372
217.182.132.29 18:15:34 22372
217.182.132.29 18:17:34 22372

Для этого всего я написал такой запрос, который склеивает все одинаковые ip и при этом суммирует количество скачанной информации

SELECT Ip, SUM(Download) as Download 
FROM requests 
GROUP BY Ip 
ORDER BY Download DESC LIMIT 0, 500

При этом мне надо, чтобы он суммировал количество скачанной информации в период 20 минут, т.е. должны просуммироваться первые 3 записи и последние 3 записи и на вывод получиться так

217.182.132.29 67116
217.182.132.29 67116

Пробовал разными способами, но результат один - склеивает ip, но при этом суммирует или не суммирует данные и на выводе получается так

217.182.132.29 134232

или так

217.182.132.29 22372

Вот мои попытки все это сделать, которые не увенчались успехом

SELECT Ip, SUM(Download) as Download 
FROM requests 
WHERE Time >= SUBDATE(Time, INTERVAL 20 MINUTE) 
GROUP BY Ip 
ORDER BY Download DESC LIMIT 0, 500
SELECT Ip, if(Time >= SUBDATE(Time, INTERVAL 20 MINUTE), SUM(Download), Download) as Download 
FROM requests 
GROUP BY Ip 
ORDER BY Download DESC LIMIT 0, 500
SELECT Ip, SUM(Download) as Download 
FROM requests 
WHERE Time BETWEEN Time AND ADDDATE(Time, INTERVAL 20 MINUTE) 
GROUP BY Ip 
ORDER BY Download DESC LIMIT 0, 500

База большая, поэтому и использую LIMIT 0, 500

Предложенный вариант ответа на вопрос не решает проблему, т.к. он вносит в одну группу записи несмотря на ip пользователя, а суть в том, что этот ip может быть не следующим, а вообще через 100 строк. Данное решение просто склеит 100 тысяч строк в одну

READ ALSO
сделать рекурсивную выборку в Laravel 5.3 Mysql

сделать рекурсивную выборку в Laravel 5.3 Mysql

У меня есть таблица категорий (id,name,parent,root) и надо сделать рекурсивную выборкуВ модели

150
Рекрусивная функция в Битрикс, php [требует правки]

Рекрусивная функция в Битрикс, php [требует правки]

Нужно переписать код на рекурсивную функцию, желательно и объяснить как это работает

144
Проблема с Jquery, как решить?

Проблема с Jquery, как решить?

Есть страница indexphp в ней подключено jquery (jquery-1

187
форма отправки +php jason+chartjs

форма отправки +php jason+chartjs

Дайте простой пример изменения данных для графика chartjsУ меня не получается отправить данные из формы как json в json php файл, и чтоб данные там...

154