我真的不知道該怎麼稱呼這個問題,所以這是我最好的猜測。mysql order by multiple occurence
這是我的問題。我有一個表,看起來像這樣:
Structure
__________________
problemID | actualDifficulty | personID | userDifficulty
Rows
__________________
39414 | 5 | 100001| 1
39414 | 5 | 100000| 1
39411 | 5 | 100000| 3
39411 | 5 | 100001| 3
39416 | 4 | 100001| 4
39413 | 3 | 100001| 3
39415 | 1 | 100001| 1
39412 | 1 | 100001| 1
39412 | 1 | 100000| 1
因此,有爲數衆多的有1 - 易分至5硬盤有一定的難度不同的「問題」。上面的表格是每個用戶都在解決問題並說他們解決問題的難度。
我想要的是得到一個「前50名」的名單,它將根據幾件事情排名每個人。
- 某人解決了難度爲5的問題總是排名高於沒有問題的人。即使其他人已經解決了難度爲4的100個問題
- 如果兩個人解決了難度爲5的同樣數量的問題,則其轉到
userDifficulty
列,以便如果一個用戶說它是1難度對他們來說,他們的排名會高於排名相同的問題,因此他們的排名將會高於那些解決了難度爲4的最多問題的人......然後解決這個問題最簡單。 ..然後誰解決了最多的3 ... ...並解決它們最簡單
獲取想法?均田?
這裏是我迄今爲止
SELECT COUNT(*) , personID
FROM table
WHERE actualDifficulty =5
GROUP BY personID
ORDER BY userDifficulty ASC
LIMIT 0 , 50
任何幫助嗎?
感謝兄弟。你今天爲我節省了很多時間。 – krummens
你能解釋第二個例子好一點嗎? – krummens