SELECT
name,
age,
itemTime
FROM
(
SELECT
csg.*, CASE
WHEN @mid = csg.itemTime THEN
@rownum :=@rownum + 1
ELSE
@rownum := 1
END rownum,
@mid := csg.itemTime MID
FROM
(SELECT @rownum := 0) r,
(SELECT @mid := 0) m,
(
SELECT
id,
DATE_FORMAT(
date_add(dataTime, INTERVAL 1 HOUR),
'%Y-%m-%d %H'
) AS itemTime,
name,
age
FROM
table w
WHERE
cty= 123
ORDER BY
itemTime,
dataTime DESC
) csg
) t
WHERE
t.rownum = 1
ORDER BY
t.itemTime DESC
公司最近遇到分組後取前十的 由於mysql 沒有topN 算法 要自己寫