2009-10-30 2 views
1

'등급'과 '사용자 ID'열이있는 '사용자 목록'과 사용자가 로그인 할 때마다 기록되는 '로그인'테이블이 있습니다. 로그인 테이블 'userID'와 연결된 'userID'열이 있습니다. 이 로그인 테이블에는 사용자가 로그인 할 때마다 행이 삽입되므로 사용자가 세 번 로그인하면 세 개의 행이 해당 테이블에 추가됩니다.MySQL 여러 개의 열을 기반으로 한 카운트 값

등급 당 발생하는 고유 로그인 수를 반환하는 쿼리를 실행해야합니다.

즉 : grade0 = 20 개 로그인, grade1 = 30 명 로그인

내가 가지고 ... 그것은, 수와 GROUP BY,하지만 바로 그것을 얻을 수 없습니다 DISTINCT의 조합의 느낌

쿼리는 잘못된 것입니다 : 그것은 고유 한 로그인을 반환하지 않습니다,하지만 모든 로그인은 (사용자가 두 번 로그인 한 경우 즉, 그는 두 번 계산)

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
select u.grade 
    , count(distinct l.userid) 
    from userlist u 
    join login l 
    on l.userid = u.userid 
group 
    by u.grade 
+0

완벽! 그것은 내가 필요한 것입니다. 감사. – Khuffie

관련 문제