Mysql 棘手的SQL查询:加入、分组、拥有

Mysql 棘手的SQL查询:加入、分组、拥有,mysql,sql,group-by,count,having,Mysql,Sql,Group By,Count,Having,我有下面的SQL测试表:;看 缺少什么:我找不到一种方法将每部电影的SUM(stars)添加到表中 2.)对于同一评论员对同一部电影进行了两次评分,第二次评分较高的所有情况,请返回评论员的姓名和电影的标题 到目前为止,我得到的是: SELECT title, name FROM Movie m JOIN Rating ra ON m.mid = ra.mid JOIN Reviewer re ON ra.rid = re.rid GROUP BY title, name HAVING COUNT

我有下面的SQL测试表:;看

缺少什么:我找不到一种方法将每部电影的
SUM(stars)
添加到表中

2.)对于同一评论员对同一部电影进行了两次评分,第二次评分较高的所有情况,请返回评论员的姓名和电影的标题

到目前为止,我得到的是:

SELECT title, name
FROM Movie m
JOIN Rating ra ON m.mid = ra.mid
JOIN Reviewer re ON ra.rid = re.rid
GROUP BY title, name
HAVING COUNT(*) > 1;
+-------------------------+-----------------+
| title                   | name            |
+-------------------------+-----------------+
| Gone with the Wind      | Sarah Martinez  |
| Raiders of the Lost Ark | Brittany Harris |
+-------------------------+-----------------+
缺少什么: 我所有的电影都被同一个评论员评了两次,但是我不知道如何筛选案例,因为最新的评论员比之前的评论员有更多的明星

如果有人能给我指出正确的方向,我将不胜感激。堆栈溢出今天对我非常有帮助:)


编辑:添加我的尝试和缺少的内容。

这将为您提供数字1所需的内容,而数字2则需要SQLFIDLE中的数据来处理。同时,我建议您考虑一下
lag
,尽管
first
last
的组合可能会满足您的需求*注意:这不会给你确切的答案,它只是一个参考

select mov.title, sum(rat.stars), max(rat.stars), rev.name
from Movie mov,
  Rating rat,
  Reviewer rev
where mov.mid = rat.mid
and rat.rid = rev.rid
group by mov.title;

你不能靠奉承来得到答案。向我们展示你迄今为止所做的尝试而不给你答案(向我们展示你所做的尝试)你应该把你试图解决的问题分解。例如,1)每部电影至少有一个分级,这将是
Movies.mID=Ratings.mID
上的内部联接。然后,您可以在
Movies.rID=Reviewer.rID
上加入Reviewer。听起来您可能是SQL新手,我想看看各种连接以及何时使用它们。还可以看看诸如
max
count
之类的函数。你们说得对,Xmo。我编辑了我的问题以添加到目前为止我得到的。谢谢@RJ7的提示。我对SQL很陌生,你是对的。但是我在python/pandas方面有相当多的经验,所以我了解所有的事情,比如
MIN、MAX、COUNT
groupby
。谢谢大家的否决票。收到消息。不,您的解决方案不起作用。我试图在最里面的联接中添加
SUM(stars)
,但它不起作用:
在“字段列表”中的未知列“ra.count\u stars”
由于我没有表中的数据,运行此操作的输出是什么?将DDL添加到SQLFIDLE中,以便我们查看。谢谢。这里有一个已经构建好的数据集的SQLFIDLE:这个SQLFIDLE对您@RJ7有用吗?我不确定,因为我从来没用过。什么?!我完全没有意识到这是不可能的。谢谢@RJ7
SELECT title, name
FROM Movie m
JOIN Rating ra ON m.mid = ra.mid
JOIN Reviewer re ON ra.rid = re.rid
GROUP BY title, name
HAVING COUNT(*) > 1;
+-------------------------+-----------------+
| title                   | name            |
+-------------------------+-----------------+
| Gone with the Wind      | Sarah Martinez  |
| Raiders of the Lost Ark | Brittany Harris |
+-------------------------+-----------------+
select mov.title, sum(rat.stars), max(rat.stars), rev.name
from Movie mov,
  Rating rat,
  Reviewer rev
where mov.mid = rat.mid
and rat.rid = rev.rid
group by mov.title;