MySQL基于多列计数值

时间:2009-10-30 20:50:32

标签: sql mysql count group-by distinct

我有两个表:一个'用户列表',它有一个'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

它不会返回唯一登录,而是所有登录(即,如果用户登录两次,则会被计算两次)。

1 个答案:

答案 0 :(得分:0)

select u.grade
     , count(distinct l.userid)
  from userlist u
  join login l
    on l.userid = u.userid
group
    by u.grade