このようなテーブルを手に入れたい
ページ数でランク付けされた、私たちが持っている本を表示します。ページ数のランク付けには50ページの範囲を使用します。これは、ページ数が500〜549の本はすべて同じランクであることを意味します。ページ数550-599は同じランクです。ページ数600-649は同じランクです。ページ数650-699は同じランクなどです。サンプル表示には、すべてランク3の4冊の本があります。ランク番号をスキップしていないことに注意してください。最初の2つのサンプル行を調べてください。最大ページ数の値については想定しないでください。クエリのロジックを設計するとき。テーブル内の現在のデータセットを使用してロジックを決定しないでください。
+---------+------------+------+
| 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ページの範囲を実行する方法を理解する必要があります