4

この選択の作成に多くの時間を費やしましたが、解決できません。私は2つのテーブルを持っています。最初のテーブルは car と呼ばれ、PK (主キー) id_car と別の列 name などがあります。2 番目のテーブルは rating と呼ばれ、id_rating (PK)、id_car (FK)、rating_value (整数) の列があります。ご想像のとおり、1 台の車に複数の怒鳴り声が出る場合があります。すべての車を選択し、各車の平均評価を知りたいです。最後に、この平均降順で結果を並べたいと思います。私はこのようなことを試みていました:

    SELECT id_car, name, average
    FROM car C, rating R 
    WHERE C.id_car = R.id_car 
    ORDER BY (average) (
        SELECT AVG(rating_value) AS average 
        FROM rating R
        WHERE C.id_car = R.id_car)

しかし、うまくいきません。

4

4 に答える 4

5

のためにSQL Server; JOINまた、代わりに使用することをお勧めしますWHERE table1, table2..

SELECT C.id_car, name, AVG(rating_value) AS average
FROM car C JOIN rating R 
      ON C.id_car = R.id_car
GROUP By C.id_car, name
ORDER BY average DESC
于 2012-11-28T11:48:13.997 に答える
0
SELECT C.name, AVG(R.rating_value)
FROM car C, rating R 
WHERE C.id_car = R.id_car
GROUP BY C.name
ORDER BY AVG(R.rating_value) DESC
于 2012-11-28T11:48:31.460 に答える