mysql在同一张表上组合不同的count()

里克1988

我的数据库包含一个“ 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.lastOnline >= now() - INTERVAL 1 DAY

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

但我在将其中3个加入/合并到一个查询中时遇到问题

谢谢

卢卡斯·索兹达(Lukasz Szozda)

您可以使用:

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 返回true(1)或false(0)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章