2

私は次の表を持っています

id item_id rating 
 1    10     1
 2    10     2
 3    10     2
 4    10     3
 5    10     3
 6    10     3
 7    10     4

次のように結果を取得できるようにクエリを作成するにはどうすればよいですか。

$ratings = array(
    1 => 1,
    2 => 2,
    3 => 3,
    4 => 1,
    5 => 0
);

このクエリを使用して、この関数で平均評価を計算する php 関数を作成する必要があります。

$total = 0;
$count = 0;
foreach($ratings as $number=>$frequency) {
  $total += $number * $frequency;
  $count += $frequency;
}
return $total / $count;
4

2 に答える 2

3
SELECT
    rating,
    COUNT(rating) as Count
FROM rating
GROUP BY rating 
于 2013-01-30T08:18:58.580 に答える
3

評価に値がCOUNTないため、テーブルのレコードの基本的なing は生成されません。ただし、からの値を含むサブクエリを生成し、それらを結合すると、目的の結果が得られます。551-5LEFT JOIN

SELECT a.rating, COUNT(b.rating) totalCount
FROM
    (
      SELECT 1 rating UNION SELECT 2 UNION
      SELECT 3 UNION SELECT 4 UNION
      SELECT 5
    ) a
    LEFT JOIN tableName b
      ON a.rating = b.rating
GROUP BY a.rating
于 2013-01-30T08:19:12.440 に答える