在单个sql查询中按和计数分组

k2arahey  于 2021-07-24  发布在  Java
关注(0)|答案(2)|浏览(295)

我有两个表-用户和登录报告。
users表有4列-id,email,name,password,created\u at,updated\u at login\u reports表有3列-id,user\u id,created\u at。
每次用户登录时,都会在登录报告中创建一个条目。
现在我必须编写一个查询来显示管理 Jmeter 板上的登录报告。查询应返回具有登录计数和上次登录的用户行。有人能帮我吗。

SELECT users.id AS id, count(users.id) FROM users
INNER JOIN login_reports
ON users.id = login_reports.user_id
GROUP BY users.id

如何获取上次登录时间戳,即该用户在登录报告(创建时间)中的最后一个条目。

8zzbczxx

8zzbczxx1#

我想你想要这样的东西

select u.id, count(r.id), max(r.created_at) 
from user u 
left join login_reports r on r.user_id = u.id
group by u.id

编辑:谢谢@tcadidot0

1bqhqjot

1bqhqjot2#

我用下面的查询来解决这个问题

SELECT users.id as id, count(login_reports.id) as login_count, login_reports.created_at as last_login FROM users LEFT JOIN (SELECT * FROM login_reports ORDER BY created_at DESC) login_reports ON users.id = login_reports.user_id

相关问题