MySQL在同一个表结合不同的计数()

问题描述:

我的数据库拥有“LASTONLINE”时间戳变量时,在用户登录,我想用这个以检索3个值MySQL在同一个表结合不同的计数()

即获得更新
[The total amount of users][users online today][users online in the last hour]. 

我能做的每一声明seperately

SELECT count(u.id) AS usersTotal FROM user u 

SELECT count(u.id) AS usersDay FROM user u 
WHERE u.lastOnline >= now() - INTERVAL 1 DAY 

SELECT count(u.id) AS usersHour FROM user u 
WHERE u.lastOnline >= now() - INTERVAL 1 HOUR 

,但我有麻烦加盟/联合他们的3成一个查询

谢谢

你可以使用:

SELECT count(u.id) AS usersTotal 
     ,SUM(u.lastOnline >= now() - INTERVAL 1 DAY) AS usersDay 
     ,SUM(u.lastOnline >= now() - INTERVAL 1 HOUR) AS usersHour 
FROM user u; 

工作原理:

u.lastOnline >= now() - INTERVAL 1 DAY回真(1)或假(0)。

+1

完美...非常感谢! – Rik1988

+0

在标记上有十分钟回答,再次感谢您的快速回复 – Rik1988