从一个数据库表中滑动获得访问权限的不同用户的数量?

Posted

技术标签:

【中文标题】从一个数据库表中滑动获得访问权限的不同用户的数量?【英文标题】:Sliding number of distinct users who get access, from one database table? 【发布时间】:2020-10-13 17:06:50 【问题描述】:

我的表至少包含名字(每个唯一)和最后访问权限(自 Epoch 以来的秒数):

|   first-name        |    last-access    |    
------------------------------------------
      John                 1592811924
      James                1592810901
      Oliver               1592811924
      Alfred               1592812925
      Alan                 1592813124
      John                 1592813924
      James                1592814040

例如,我如何绘制每小时获得访问权限的不同用户的数量?

【问题讨论】:

【参考方案1】:

一个简单的选择是:

select 
    floor(last_access / 60 / 60) * 60 * 60 last_access_hour, 
    count(distinct first_name) no_distinct_users
from mytable
group by last_access_hour

这会计算每小时不同的用户数。你也可以用模运算符来表达:

select 
    last_access - last_access % (60 * 60) last_access_hour, 
    count(distinct first_name) no_distinct_users
from mytable
group by last_access_hour

如果你想以人类可读的格式显示纪元时间戳,你可以使用from_unixtime

select 
    date_format(from_unixtime(last_access), '%Y-%m-%d %H:00:0') last_access_hour, 
    count(distinct first_name) no_distinct_users
from mytable
group by last_access_hour

【讨论】:

很好的答案 GMB,我仍然可以在 grafana 中绘制结果表

以上是关于从一个数据库表中滑动获得访问权限的不同用户的数量?的主要内容,如果未能解决你的问题,请参考以下文章

以不同用户身份运行代码以获得提升的权限

使用POI读取EXCEL中的数据如何获得表中实际数据的行数?

如何获得可访问性滑动以正确导航子视图集合?

获得蝗虫数量和母版中的用户数量

ORACLE数据库中的权限和角色

oracle 审计