Sql 替换为';分组依据'&';拥有';使用';全部';

Sql 替换为';分组依据'&';拥有';使用';全部';,sql,sqlite,Sql,Sqlite,模式: 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(star

模式:

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)
我一直试图在不使用
分组方式、have和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)
这似乎给我带来了一个错误:
接近“all”:语法错误:
,我正在使用DB browser for 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;