Моя БД содержит идентификатор пользователя в первом столбце и временную метку какого-либо действия (войдите или нажмите кнопку). Первая запись (ИД пользователя, время) всегда входит в систему пользователя, иногда есть и вторая, что означает, что пользователь также нажал кнопку - но это не всегда так. Никогда не бывает более 2 строк с одинаковым идентификатором пользователя.
"userID" "time"
"0" "1526474096000"
"1" "1526474097000"
"2" "1526474098000"
"3" "1526474099000"
"4" "1526474100000"
"1" "1526474106000"
"0" "1526474107000"
Например, здесь только пользователи с ID 0 и 1 нажимали кнопку.
Я хочу рассчитать гистограмму (или какое-то другое приближение) разницы во времени, потому что слишком много пользователей, чтобы моя оперативная память могла импортировать разницу во времени для каждого пользователя.
Мой SQL-запрос выглядит так (n - некоторый размер бина гистограммы):
SELECT COUNT(*), (MAX(time)-MIN(time)/n) as time_difference
FROM table_name
GROUP BY userID, time_difference
Это не работает, потому что «агрегатные функции не разрешены в предложении GROUP BY».