1

テーブル内のカクテルの平均「評価」を計算したいと考えています。tblCocktail にリンクされた tblRating があり、このテーブル内に「値」と「カウンター」があります。「値」にはユーザーが各カクテルに付けることができる 1 ~ 5 の評価が含まれ、「カウンター」には値「1」が含まれます。すべての「値」を合計し、「カウンター」の数で割って、各カクテルの平均評価を計算したい

PHPフィールドに基づいて数学的な計算を行ったことがないので、助けていただければ幸いです

-マット

4

2 に答える 2

1

これがあなたが望むことをするべき例です、明らかに完全なテーブルスキーマがなければそれはより正確になることは不可能です、しかし例は考えを示すべきです:

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)を計算します。

于 2012-05-03T09:34:41.200 に答える
1

おそらくカウンターフィールドは必要ありません。AVG関数はカウンターを必要とせずに平均を計算できます。

SELECT AVG(value)
FROM tblRating
WHERE cocktail_id = 1234

ノート:

  • 評価テーブル内の行数を数えて、評価の数を決定できます
  • NULL平均の計算時に値が考慮されない
  • 選択したスケールに固執し、1 ~ 5 の範囲外の値を許可しないようにする必要があります
于 2012-05-03T09:49:47.380 に答える