2010-06-23 170 views
1

我在嘗試通過用戶給出的最佳可能評分來評分水果類型。MySQL評分系統 - 查找評分

我有一個名爲評級水果表只是提交評級以下信息

Fruit_id int 
From_ID int 
Rating int 

現在我試圖運行像下面

select From_ID, AVG(Rating) AS Rating FROM Ratings Group BY `Fruit_ID` ORDER by Rating DESC 

一個SQL命令,但是這個工作,如果我得到一個用戶評價一個水果蘋果一個5,然後1000個用戶誰評價一個橙色4蘋果突然被認爲是更好的。

我怎樣才能把票數考慮進去,以確保最好的投票與最好的是第一次。

回答

0

爲什麼不只是選擇投票數並顯示給用戶。所以是的,1票5票的蘋果將是一個整體5但只有1票。這將給用戶一個簡單的方法來看看給定的評級是如何「流行」。

如果我沒有弄錯,這就是今天大多數五星評級系統如何在網絡上工作。

祝你好運!

尼克

+0

這裏的問題是沒有顯示數據,它試圖通過一次投票將頂級水果排在第一位 – pws5068 2010-06-23 12:34:42

2

這個問題是關於調整你的數學公式比什麼都重要。

這聽起來像你要求的是流行,而不是評級。一個簡單的方法可能是將平均評分乘以投票數。這個是什麼(請原諒我,如果我的語法是關閉的,我是從SQL Server離開的那一刻):

select From_ID, AVG(Rating) * COUNT(Rating) AS Rating FROM Ratings Group BY Fruit_ID ORDER by Rating DESC

記住這個公式將多率1000票的1高於1投5. 5.

+0

你可以只使用... SELECT From_ID,SUM(等級)與等級評級從GROUP BY水果IDORDER按評級降序......以平均* COUNT = SUM。 – 2010-06-23 08:15:25