3
나는 이와 같은 테이블을 얻고 싶습니다.Mysql 랭킹 쿼리 할당
페이지 수로 랭킹 된 책을 보여줍니다. 페이지 수를 랭킹하기 위해 50 페이지 범위를 사용하고자합니다. 즉, 페이지 수가 500-549 인 도서의 순위는 같습니다. 페이지 수 550-599는 동일한 순위를가집니다. 페이지 수 600-649는 동일한 순위를가집니다. 페이지 수 650-699는 같은 순위를 가지고 있습니다. 샘플 디스플레이에서 우리는 모두 순위 3에있는 4 권의 책을 가지고 있습니다. 우리는 순위 번호를 건너 뛰지 않고 처음 두 샘플 행을 검사합니다. 최대 페이지 수에 대한 가정을하지 마십시오. 쿼리의 로직을 디자인 할 때. 테이블에있는 현재 데이터 세트를 사용하여 논리를 결정하지 마십시오.
+---------+------------+------+
| Book_ID | Page_count | Rank |
+---------+------------+------+
| 1001 | 2000 | 1 |
| 1587 | 1300 | 2 |
| 8546 | 982 | 3 |
| 8415 | 980 | 3 |
| 1474 | 976 | 3 |
| 1444 | 970 | 3 |
| 1524 | 918 | 4 |
| 2005 | 894 | 5 |
| 200 | 879 | 5 |
| 201 | 850 | 5 |
| 4574 | 825 | 6 |
| 6584 | 825 | 6 |
편집 : 지금은
SELECT b.book_id AS Book_ID, b.page_count as Page_Count, (
SELECT COUNT(DISTINCT page_count)
FROM a_bkinfo.books as b2
WHERE b2.page_count >= b.page_count
) as Rank
FROM a_bkinfo.books as b
ORDER BY Page_Count DESC
가 지금은
Book_ID Page_Count Rank
1448 3192 1
1306 2895 2
1979 1368 3
1678 1002 4
1677 982 5
1689 980 6
내가 50 페이지 범위
완벽! 고마워, <= 대신 DJ 50이하는 일을 나에게 설명해 주시겠습니까? – yan
@RaymondYan, DIV는 모듈러스 또는 %의 보수입니다. 정수 나누기를 수행하고 정수 부분을 부동 소수점 대신 정수로 반환합니다. 'SELECT 5 DIV 2'는 2.5가 아니라 2를 반환합니다. –
나는 본다. 나는 DIV 50 대신에 50을 사용했지만, 50은하지 않았다. – yan