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

조회수 6839회

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

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

    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
    

    이렇게 하시면 된답니다.

    • (•́ ✖ •̀)
      알 수 없는 사용자

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

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)