模式:
Movie(mID int, title text, year int, director text);
Reviewer(rID int, name text);
Rating(rID int, mID int, stars int, ratingDate date);
我做了这个简单的查询,返回每部电影的最高电影评分。
select title,stars from movie join rating Using(mID)
group by title
HAVING MAX(stars)
我一直在尝试不使用进行此查询Group By, Having and MAX
,但似乎无法使我的查询正常工作。
这是我到目前为止所拥有的:
select title,stars from movie join rating r1 Using(mID)
where stars >=
ALL(select stars from rating r2 where r1.rID=r2.rID AND r1.mID=r2.mID)
这似乎只是向我抛出此错误:near "all": syntax error:
并且我正在将数据库浏览器用于SQL Lite。
该查询:
select title, stars
from movie M1 join
rating
Using mID
group by title
having MAX(stars)
对于该having
子句,没有做任何明智的事情。它所做的只是滤除max(stars)
不为零或的行NULL
。可能不是您的意图。
我的猜测是您想要的电影具有最高的星级。如果一部这样的电影没问题:
select title, max(stars) as stars
from movie M1 join
rating
Using mID
group by title
order by stars desc
limit 1;
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句