, ranges:
CREATE TABLE ranges (
`range` int
);
INSERT INTO ranges VALUES (2), (4), (6), (8);
ranges :
SELECT CONCAT(r.`range` - 2, ' to ', r.`range`) `range`,
COUNT(session_length) number_of_sessions
FROM ranges r
LEFT JOIN (
SELECT rs.sessionID,
ABS(TIMEDIFF(MIN(ar.date), MAX(ar.date))) session_length
FROM Log_Analysis_RecordsToSesions rs,
JOIN Log_Analysis_Records ar ON (rs.recordID = ar.recordID )
GROUP BY rs.sessionID;
) dt ON (dt.session_length > r.`range` - 2 AND
dt.session_length <= r.`range`)
GROUP BY r.`range`;
, :
CREATE TABLE sessions (
session_id int,
session_length int
);
INSERT INTO sessions VALUES (1, 2031);
INSERT INTO sessions VALUES (2, 1954);
INSERT INTO sessions VALUES (3, 401);
INSERT INTO sessions VALUES (4, 7505);
, , ranges :
SELECT CONCAT(r.`range` - 2, ' to ', r.`range`) `range`,
COUNT(session_length) number_of_sessions
FROM ranges r
LEFT JOIN (
SELECT session_id, session_length FROM sessions
) dt ON (dt.session_length / 1000 > r.`range` - 2 AND
dt.session_length / 1000 <= r.`range`)
GROUP BY r.`range`;
:
+--------+--------------------+
| range | number_of_sessions |
+--------+--------------------+
| 0 to 2 | 2 |
| 2 to 4 | 1 |
| 4 to 6 | 0 |
| 6 to 8 | 1 |
+--------+--------------------+
4 rows in set (0.00 sec)