【发布时间】:2012-05-28 11:50:02
【问题描述】:
我有这张“评分”表,其中包含一个 USER_ID、Artist_ID 和一个评分(int,用户分配的分数)。当然还有一个“艺术家”表,其中包含一个字段“ID”和“名称”。
我正在尝试获取艺术家姓名的降序列表,按每位艺术家的 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
如您所见,艺术家“Guido Belcanto”的评分超过 1。我目前不知道如何计算不止一次出现的那些 ID 的 AVG()。这可能是基本的 MySQL,但我可能正在寻找错误的方向
【问题讨论】: