我有一个名为 login_logs 的 postgresql 表,它具有以下字段:
日期、时间、用户名、ip_addr
我有以下 SQL 可以获取大于或等于某个日期的登录信息:
SELECT * FROM login_logs WHERE date>='2016-10-01'
Run Code Online (Sandbox Code Playgroud)
但是,我只想获取用户名和日期列表,其中一个用户名在同一天有多个登录名。因此,例如,如果一个用户名有一个条目两次或更多次,那么它应该返回该用户名、日期以及当天登录次数的计数。因此,如果用户还有另一个登录次数超过两次的日期,那么也应该显示用户名、日期和计数。
任何想法我怎么能做到这一点?
像这样的事情可以解决问题:
SELECT
username,
COUNT(*) as count,
date_trunc('day', date) as day
FROM login_logs
WHERE date>='2016-10-01'
GROUP BY username, day
HAVING COUNT(*) > 1
Run Code Online (Sandbox Code Playgroud)
我们组登录都通过用户名和一天,因为我们想成为推理由在同一天同一个用户登录的组。然后,我们只保留具有多个条目的组。
| 归档时间: |
|
| 查看次数: |
4766 次 |
| 最近记录: |