テーブル内のカクテルの平均「評価」を計算したいと考えています。tblCocktail にリンクされた tblRating があり、このテーブル内に「値」と「カウンター」があります。「値」にはユーザーが各カクテルに付けることができる 1 ~ 5 の評価が含まれ、「カウンター」には値「1」が含まれます。すべての「値」を合計し、「カウンター」の数で割って、各カクテルの平均評価を計算したい
PHPフィールドに基づいて数学的な計算を行ったことがないので、助けていただければ幸いです
-マット
これがあなたが望むことをするべき例です、明らかに完全なテーブルスキーマがなければそれはより正確になることは不可能です、しかし例は考えを示すべきです:
SELECT c.name, AVG(r.value)
FROM tblCocktail c
JOIN tblRating r ON c.id = r.cocktail.id
GROUP BY c.id, c.name
基本的に、tblCocktailからすべてのカクテルを選択し、評価の平均(r.value)を計算します。
おそらくカウンターフィールドは必要ありません。AVG
関数はカウンターを必要とせずに平均を計算できます。
SELECT AVG(value)
FROM tblRating
WHERE cocktail_id = 1234
ノート:
NULL
平均の計算時に値が考慮されない