Có dễ dàng như thêm ngày vào nhóm group by
không . Đây là cú pháp sẽ hoạt động trong cả MySQL và SQLite, dựa trên ngày vào thời gian kết thúc và giả sử thời gian kết thúc được lưu trữ dưới dạng ngày giờ:
SELECT ID, thedate, AVG(diff) AS average,
AVG(diff*diff) - AVG(diff)*AVG(diff) AS variance,
SQRT(AVG(diff*diff) - AVG(diff)*AVG(diff)) AS stdev,
MIN(diff) AS minTime,
MAX(diff) AS maxTime
FROM (SELECT t1.id, t1.endTimestamp, DATE(endtimestamp) as thedate,
min(t2.startTimeStamp) - t1.endTimestamp AS diff
FROM table1 t1 INNER JOIN
table1 t2
ON t2.ID = t1.ID AND t2.subject = t1.subject AND
t2.startTimestamp > t1.startTimestamp -- consider only later startTimestamps
WHERE t1.subject = 'entrance'
GROUP BY t1.id, t1.endTimestamp
) AS diffs
GROUP BY ID, thedate
Nếu được lưu trữ dưới dạng dấu thời gian, hãy xem nhận xét của Marty.