我有两个表:一个'用户列表',它有一个'grade'和'userID'列,还有一个'login'表,用于记录用户每次登录。登录表有一个'userID'列与'userID'相关联。每次用户登录时,此登录表都会插入一行,因此如果用户登录三次,则会向该表添加三行。
我需要运行一个查询,返回每个级别发生的唯一登录次数。
即:0级= 20次登录,1级= 30次登录
我觉得它是DISTINCT,COUNT和GROUP BY的组合,但我无法正确理解......
此查询错误:
SELECT DISTINCT(userID), COUNT(*) as count, u.grade FROM userlist as u, login as l WHERE u.userID = l.userID GROUP BY u.grade, u.userID
它不会返回唯一登录,而是所有登录(即,如果用户登录两次,则会被计算两次)。
答案 0 :(得分:0)
select u.grade
, count(distinct l.userid)
from userlist u
join login l
on l.userid = u.userid
group
by u.grade