You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何按需求关联3张表?SQL聚合查询GROUP BY报错求助

嘿,这个报错我太熟啦!问题出在你用了聚合函数,但没把Movies.Title放到GROUP BY子句里~

为什么会报错?

当你使用SUM()、COUNT()这类聚合函数时,数据库需要明确知道按照哪个字段分组来计算总和或数量。你在SELECT里选了Movies.Title这个非聚合字段,但没告诉数据库要按这个标题分组,它就不知道该把哪些行的价格加总、哪些预订数统计在一起,所以就抛出了这个错误。

修正后的代码

首先补全你没写完的Movies关联条件(假设是通过MovieId关联,你可以换成实际的关联字段),然后把Movies.Title加到GROUP BY里:

SELECT 
    Movies.Title,
    SUM(Bookings.Price) AS newPrice,
    COUNT(Bookings.BookingId) AS Quantity
FROM 
    Orders
INNER JOIN 
    Bookings ON Orders.BookingId = Bookings.BookingId
INNER JOIN 
    Movies ON Movies.MovieId = Orders.MovieId -- 替换成你的实际关联字段
GROUP BY 
    Movies.Title

更严谨的写法(推荐)

如果存在同名电影(不同MovieId但标题相同),上面的写法会把它们的统计结果合并到一起。这种情况下,最好用唯一的MovieId来分组,同时保留标题在结果里:

SELECT 
    Movies.MovieId,
    Movies.Title,
    SUM(Bookings.Price) AS newPrice,
    COUNT(Bookings.BookingId) AS Quantity
FROM 
    Orders
INNER JOIN 
    Bookings ON Orders.BookingId = Bookings.BookingId
INNER JOIN 
    Movies ON Movies.MovieId = Orders.MovieId
GROUP BY 
    Movies.MovieId, Movies.Title

这样就能准确按每一部电影来统计总销售额和预订数量啦~

内容的提问来源于stack exchange,提问作者MammaDiGrenie'

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 09:59:12