mysql 当前排名查询,MySQL排名查询分配
我想要一張這樣的桌子
顯示我們擁有的書,按頁數排名.我們要使用50頁范圍來對頁數進行排名.這意味著任何頁數在500-549之間的書都具有相同的等級;頁數550-599具有相同的等級;頁數600-649具有相同的等級;頁數650-699具有相同的等級,以此類推.在示例顯示中,我們有四本書全部位于等級3.請注意,我們沒有跳過等級編號-請檢查前兩個示例行.不要假設最大頁面計數值.在設計查詢邏輯時.不要使用表中的當前數據集來決定邏輯.
+---------+------------+------+
| 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頁范圍
解決方法:
我認為您正在尋找這樣的東西:
select
book_id,
page_count,
(select count(distinct b2.page_count DIV 50)
from books b2
where b2.page_count DIV 50 >= books.page_count DIV 50) as page_rank
from books
order by page_count desc
標簽:mysql
來源: https://codeday.me/bug/20191031/1976543.html
總結
以上是生活随笔為你收集整理的mysql 当前排名查询,MySQL排名查询分配的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 个人可以开几个证券账户 个人能开多少个股
- 下一篇: 相对于oracle数据库的作用 类似于,