mysql - SQL - 选择各种计数

标签 mysql sql select

我有下表:

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

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

并且想要获取总用户数,以及从今天起上次登录的 session 的用户数。我如何对查询建模?

最佳答案

让我假设您将 session 表修复为具有 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 ;

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

关于mysql - SQL - 选择各种计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42698250/

相关文章:

mysql - 更新洋红色时,core_file_storage 中的 UNQ_CORE_FILE_STORAGE_FILENAME_DIRECTORY_ID 键重复条目

java - 从不起作用中删除

javascript - Angular ng-repeat 内嵌套 ng-option

sql - 如何在 Postgresql 数据库中添加不允许空值的列?

SQLite 删除的数据保留在数据库二进制文件中

mysql - 将列值映射到其包含行的日期

php - 如何在php中从数据库获取数据到下拉列表

mysql - 查询代码加入问题

php - Docker - 未创建mysql用户

mysql - Godaddy - 使用 GUI Mysql-Front 工具连接 Mysql