tra*_*lix 9 mysql sql grouping
我正在尝试进行一个查询来获取每个数据,hour
而不是按小时而不是正常组我想缩小它并且只得到latest
小时 - 这意味着该小时内的最新数据.如下图所示,我想得到的是带红色框的行.如果你会发现,第一个红色行10:59:51
,这意味着它是唯一的行内的10:00:00
和10:59:59
.对于12:00
我希望得到的其他行,12:37:14
因为它是该小时范围的最新或最新.
我有一个简单的查询,hour
使用HOUR()
like 来分组数据:
SELECT userid, username, date_created
FROM user_accounts
WHERE date_created >= '2009-10-27 00:00:00' AND date_created < '2009-10-27 23:59:59'
GROUP BY HOUR(date_created)
Run Code Online (Sandbox Code Playgroud)
查询,但是,仅通过分组小时它10
并12
返回ID 24
和25
-但我需要的是ID 24
和28
.有任何想法吗?
diE*_*cho 19
尝试
SELECT f.*
FROM (
SELECT MAX(UNIX_TIMESTAMP(date_created)) AS mts
FROM user_accounts
GROUP BY HOUR(date_created)
) s
JOIN user_accounts f
ON UNIX_TIMESTAMP(date_created) = s.mts
WHERE DATE(date_created) = '2009-10-27'
Run Code Online (Sandbox Code Playgroud)
也许这会奏效吗?
SELECT userid, username, date_created
FROM user_accounts
WHERE userid IN (
SELECT MAX(userid)
FROM user_accounts
WHERE date_created >= '2009-10-27 00:00:00' AND date_created < '2009-10-27 23:59:59'
GROUP BY HOUR(date_created)
)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
33741 次 |
最近记录: |