gpt4 book ai didi

sql - 用“ALL”代替“Group By”和“Having”查询

转载 作者:行者123 更新时间:2023-12-03 19:41:43 25 4
gpt4 key购买 nike

模式:

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;

关于sql - 用“ALL”代替“Group By”和“Having”查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28012996/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com