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

조회수 5956회

안녕하세요 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

결과를 보면

이미지

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

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
    

    이렇게 하시면 된답니다.

답변을 하려면 로그인이 필요합니다.

Hashcode는 개발자들을 위한 무료 QnA 사이트입니다. 계정을 생성하셔야만 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)

ᕕ( ᐛ )ᕗ
로그인이 필요합니다

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 계정을 생성하셔야만 글을 작성하실 수 있습니다.