使用sql查找每个用户给出的平均评分
该任务要求我使用procsql查找每个查看了5个以上食谱的用户给出的平均评分。数据集如下:使用sql查找每个用户给出的平均评分,sql,Sql,该任务要求我使用procsql查找每个查看了5个以上食谱的用户给出的平均评分。数据集如下: user_id recipe_id date rating 231 245 17/02/2019 20 098 134 31/01/2019 1 ....... ....... 有人能告诉我如何得到结果吗 非常感谢您您应该有效地使用它来实现这些目标 试试下面 SELECT recipe_id, AV
user_id recipe_id date rating
231 245 17/02/2019 20
098 134 31/01/2019 1
.......
.......
有人能告诉我如何得到结果吗
非常感谢您您应该有效地使用它来实现这些目标
试试下面
SELECT recipe_id, AVG(rating)
FROM Table1
WHERE user_id IN (SELECT user_id, COUNT(recipe_id) FROM Table1 GROUP BY user_id HAVING COUNT(recipe_id) > 5)
GROUP BY recipe_id
您应该有效地使用这些工具来实现这些目标
试试下面
SELECT recipe_id, AVG(rating)
FROM Table1
WHERE user_id IN (SELECT user_id, COUNT(recipe_id) FROM Table1 GROUP BY user_id HAVING COUNT(recipe_id) > 5)
GROUP BY recipe_id
尝试使用sql连接
SELECT
r.user_id
,AVG(rating) avg
FROM recipe r
inner join (
Select user_id
from recipe
group by user_id
having count(*) > 5
) c
on c.user_id =r.user_id
group by r.user_id
尝试使用sql连接
SELECT
r.user_id
,AVG(rating) avg
FROM recipe r
inner join (
Select user_id
from recipe
group by user_id
having count(*) > 5
) c
on c.user_id =r.user_id
group by r.user_id
只需按分组即可。使用
HAVING
仅返回具有5种以上不同配方的用户
SELECT user_id, AVG(rating)
FROM tablename
GROUP BY user_id
HAVING COUNT(distinct recipe_id) > 5
DoCOUNT(distinct recipe_id)>5
只返回审核了5个以上不同配方的用户。(正如Serge所建议的那样。)
COUNT(recipe\u id)>5
可以多次包含相同的配方。只需按分组即可。使用HAVING
仅返回具有5种以上不同配方的用户
SELECT user_id, AVG(rating)
FROM tablename
GROUP BY user_id
HAVING COUNT(distinct recipe_id) > 5
DoCOUNT(distinct recipe_id)>5
只返回审核了5个以上不同配方的用户。(正如Serge所建议的那样。)
COUNT(recipe\u id)>5
可能多次包含同一配方。请添加您尝试的查询以及您遇到的问题。我们不替你做作业,我会改正的。我们为您做家庭作业。请添加您尝试的查询以及您遇到的问题。我们不替你做作业,我会改正的。我们为你做家庭作业。有人可能会争论你是否支持懒惰,如果是OP。但我认为更重要的是:你的答案可以通过添加解释来改进。有人可能会争论你是否支持懒惰,如果是OP。但我认为更重要的是:你的答案可以通过添加解释来改进(DISTINCT recipe_id)
可能是在用户可以多次查看receipt的情况下。@Serg,有意义。谢谢。@jarlh…如果允许重复,您应该只使用COUNT(DISTINCT)
。否则它会带来不必要的开销。@GordonLinoff,因为我这里没有表定义,所以让OP选择。COUNT(DISTINCT recipe_id)
可能是在用户可以多次查看receipt的情况下。@Serg,有意义。谢谢。@jarlh…如果允许重复,您应该只使用COUNT(DISTINCT)
。否则它会带来不必要的开销。@GordonLinoff,因为我这里没有表定义,所以让OP选择。