MySQL Count значения основаны на нескольких столбцах - PullRequest
1 голос
/ 30 октября 2009

У меня есть две таблицы: «userlist», в котором есть столбцы «grade» и «userID», и таблица «login», которая записывает каждый раз, когда пользователь входит в систему. В таблице входа есть столбец «userID», который связан с 'userID'. В эту таблицу входа в нее вставляется строка каждый раз, когда пользователь входит в систему, поэтому, если пользователь входит в систему три раза, в эту таблицу будут добавлены три строки.

Мне нужно выполнить запрос, который возвращает количество уникальных входов в систему за класс.

Т.е.: Grade0 = 20 логинов, Grade1 = 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 голосов
/ 30 октября 2009
select u.grade
     , count(distinct l.userid)
  from userlist u
  join login l
    on l.userid = u.userid
group
    by u.grade
...