SQL - 选择各种计数

时间:2017-03-09 14:44:49

标签: mysql sql select

我有以下表格:

User
-------------------
id BIGINT
name text

Session
-------------------
id BIGINT
username text
last_login datetime

并希望获得总用户数,以及从今天起最后一次登录会话的用户数。我该如何建模查询?

1 个答案:

答案 0 :(得分:1)

我假设你将会话表修复为userId而不是userName。那你的答案取决于数据库。一般的想法是这样的:

select count(distinct u.id) as user_count,  -- including those with no sessions
       sum(case when cast(last_login as date) = CURRENT_DATE
from users u left join
     sessions s
     on u.id = s.userId ;

这是逻辑的草图。从日期/时间值中删除时间组件因数据库而异。表示当前日期的方式因数据库而异。