2016-03-25 12 views
0

私は1から5のレーティングをとり、投票数を増やしてレーティングの総数に加算するレーティングシステムを持っています。2行を分割して上位5つのMySQLを選択

FROM ratings ORDER BY totalRating DESC LIMIT 5 

が今、明らかに、これは仕事に行くされていません。これは、現在、このクエリを使用してMySQLデータベースからPHPのWebサービスを介してXMLを提供して私のトップ5リーダーのための問題があります。

noRatingでtotalRatingの除算を行う方法はありますか?

私はこれをデータベースレベルに保持しようとしています。うまくいけばそれは可能です。

編集:

それでは、私のテーブルの評価を言わせて、2つのレコードを持っている:

Name | cRating | tRating //current number of ratings and total 
Tv1 | 2 | 10 
Tv2 | 3 | 9 

私はtRating /クレートを行う必要があり、その後、トップ5に示すようにそれらを並べ替える

所望の結果がにあります私は自分の携帯電話に書いているひどい書式設定のために申し訳ありません。

+0

私はあなたのロジックに従いません。サンプルデータと希望の結果を質問に追加できますか? –

答えて

1

の算術式を使用できます10。だからこれはあなたが望むことをするかもしれません:

order by tRating/nullif(cRating, 0) desc 
+0

これは動作していて動作していないため、正しいトップ5を返しますが、返される数値は定格カウント(cRating)です。例えばTv1は10/2 = 5 – razki

+0

@ user3318955ではなく2を返します。 。 。次に 'select 'と' order by'を変更する必要があります。 –

関連する問題