mysql RANK(랭킹) 쿼리 어떻게 해요?


안녕하세요 mysql로 랭킹 출력 시킬려고하는데요.

SELECT * FROM (
                SELECT
                    cu_distribution,
                    count(cu_status),
                    @curRank := @curRank + 1 AS rank
                FROM 
                cs_customer p, (SELECT @curRank := 0) r where cu_status=1 
                group by cu_distribution order by count(cu_status)) AA

결과를 보면

이미지

이렇게 되는데요. ㅠ 왜그런거죠?

  • 2016년 07월 27일에 작성됨

조회수 640


1 답변


좋아요
0
싫어요
채택취소하기

오늘 몇시간동안 연구하다가 겨우 해결됐어요. 혹시 저처럼 막히신분 아래처럼 하시길 바랍니다.

SELECT cu_distribution, status, @Rank:=@Rank + 1 AS user_rank
FROM
(
    SELECT cu_distribution, count(cu_status) AS status
    FROM cs_customer
    where cu_status=1
    GROUP BY cu_distribution
    ORDER BY status DESC
) Sub1
CROSS JOIN (SELECT @Rank:=0) Sub2

이렇게 하시면 된답니다.

  • 2016년 07월 27일에 작성됨

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close