【发布时间】:2012-05-23 08:46:46
【问题描述】:
我有两张桌子:
食谱
配方 ID |用户名 |姓名 |等等
和
食谱评分
RecipeRatingId |配方 ID|用户名 |评分|评论
我想选择一个食谱列表并包含平均评分。这样的事情会起作用:
SELECT
Recipes.RecipeId,
Name,
AVG(RecipeRatings.Rating) AS AverageRating
FROM Recipes
INNER JOIN RecipeRatings
ON RecipeRatings.RecipeId = Recipes.RecipeId
GROUP BY Recipes.RecipeId, Recipes.Name
ORDER BY AverageRating DESC
但我真正想要的是获得平均或当前用户评分。如果用户自己评价更高或更低,我似乎不应该费心显示平均值。
所以给定一个参数@userId,有没有办法从RecipeRatings 表中选择食谱列表以及当前用户评分(如果有的话),否则是平均值(如果有的话)?
拥有AverageRating 和MyRating 列也很好,这将由客户端来正确显示。
【问题讨论】:
标签: sql sql-server average rating