mysql在同一个表上组合不同的count()
我的数据库包含一个“lastOnline”时间戳变量,当用户登录时,该变量会得到更新。我想用它来检索3个值mysql在同一个表上组合不同的count(),mysql,Mysql,我的数据库包含一个“lastOnline”时间戳变量,当用户登录时,该变量会得到更新。我想用它来检索3个值 [The total amount of users][users online today][users online in the last hour]. 我可以分别做每一个陈述 SELECT count(u.id) AS usersTotal FROM user u SELECT count(u.id) AS usersDay FROM user u WHERE u.lastOn
[The total amount of users][users online today][users online in the last hour].
我可以分别做每一个陈述
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
但我很难将这三个问题合并到一个查询中
谢谢您可以使用:
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()-间隔1天
返回真(1)或假(0)。完美。。。非常感谢!