このテーブル「Ratings」には、USER_ID、Artist_ID、およびRating(int、ユーザーによって割り当てられたスコア)が含まれています。そしてもちろん、テーブル「Artists」とフィールド「ID」および「Name」。
アーティストごとのAVGスコアでソートされた、アーティスト名の降順リストを取得しようとしています。最初はこれはそれほど難しいことではないと思いましたが、私はいじり続けます...
これが私が立ち往生しているところです。複数回発生するIDのAVG()を計算する方法を理解する必要があります。また、DISTINCTキーワードを使用してさまざまなクエリを試しましたが、成功しませんでした。
例えば:
SELECT Name, Rating
FROM Artists as a
INNER JOIN Ratings as r
ON a.ID = r.Artists_ID
ORDER BY r.Rating DESC;
結果を教えてください:
Name Rating
"The Mars Volta" 9.5
"Simon Felice" 9.0
"Laura Gibson" 8.0
"Calexico" 7.0
"Mira" 7.0
"Guido Belcanto" 6.0
"Guido Belcanto" 1.0
ご覧のとおり、アーティスト「GuidoBelcanto」には1つ以上の評価があります。現時点では、複数回発生するIDのAVG()を計算する方法がわかりません。おそらく基本的なMySQLですが、間違った方向に検索している可能性があります