Я пытаюсь проанализировать некоторые веб-журналы с моего веб-сервера. Я запустил все журналы на прошлой неделе в базу данных mysql, и я анализирую журналы.MySQL: подсчитайте количество элементов в диапазоне
Я создал таблицу sessionID
с, а продолжительность сеанса, используя эту команду MySQL:
SELECT
Log_Analysis_RecordsToSesions.sessionID,
ABS(TIMEDIFF(
MIN(Log_Analysis_Records.date),
MAX(Log_Analysis_Records.date)
)) as session_length
FROM
Log_Analysis_RecordsToSesions,
Log_Analysis_Records
WHERE
Log_Analysis_RecordsToSesions.recordID=Log_Analysis_Records.recordID
GROUP BY
sessionID;
-
+-----------+----------------+
| sessionID | session_length |
+-----------+----------------+
| 1 | 2031.000000 |
| 2 | 1954.000000 |
| 3 | 401.000000 |
...
То, что я хочу сделать сейчас, это изменить заявление так, что он произведет что-то вроде этого:
Range (time) Number of Sessions
0 to 2 10
2 to 4 4
4 to 6 60
...
Диапазон будет фиксированным количество времени, и я хочу подсчитать количество сеансов в этом диапазоне. Моя первая мысль состоит в том, чтобы перебрать все это с помощью php, но это кажется очень трудоемким и грубым. Есть ли способ сделать это в mysql?
Не могли бы вы объяснить, на второй линии делает? – sixtyfootersdude
Он объединяет значение отображения, которое используется в 'group by', со словом' 'to '' и следующей группой, которая будет использоваться в' group by' (+ 2000 мс). '' '' '' Используется для отображения: поскольку, например, 401 и 1500 div 2000 является '0' (значение, используемое в' group by'), а 2031 div 2000 - '1' - другая группа. –