SELECT
MIN(StartTime) AS StartTime,
MAX(EndTime) AS EndTime,
MAX(ContinueCount) AS ContinueCount
FROM
(
SELECT
StartId,
StartTime,
EndId,
EndTime,
Num,
@count := CASE
WHEN (Num = 1) THEN
@count :=@count + 1
ELSE
@count := 0
END AS ContinueCount
FROM
(
SELECT
a.Id AS StartId,
a.AddOn AS StartTime,
b.Id AS EndId,
b.AddOn AS EndTime,
DATEDIFF(a.AddOn , b.AddOn ) AS Num
FROM
(
SELECT
@startnum :=@startnum + 1 AS RowNum,
Tab.Id,
Tab.AddOn
FROM
(
SELECT
Id,
DATE(AddOn) AS AddOn
FROM
table
GROUP BY
DATE(AddOn)
ORDER BY
AddOn DESC
) AS Tab,
(SELECT @startnum := 0) starttemp
) AS a
INNER JOIN (
SELECT
@endnum :=@endnum + 1 AS RowNum,
Tab.Id,
Tab.AddOn
FROM
(
SELECT
Id,
DATE(AddOn) AS AddOn
FROM
table
GROUP BY
DATE(AddOn)
ORDER BY
AddOn DESC
) AS Tab,
(SELECT @endnum := 0) endtemp
) AS b ON a.RowNum + 1 = b.RowNum
) AS source,
(SELECT @count := 0) count
) AS s
table属性:
Id Guid
AddOn datetime