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

SQL子查询返回多行值报错求助:计算单场平均收入

问题分析与解决方案

报错原因

你的SQL报错是因为给@Division赋值的子查询返回了多行结果:GROUP BY NombrePelicula会将funcion表按电影名称分组,输出每个满足“场次>1”的电影的场次数量,而单个INT变量只能存储一个值,无法接收多行数据,因此触发错误。

修正后的SQL(按需求实现)

根据你“计算每场演出的平均票价”的需求,以下是两种常见场景的实现:

场景1:计算每部电影的每场平均收入(总票房÷场次)

假设pelicula表的PrecioEntrada是单场总票价,通过关联两张表按电影分组计算:

SELECT
    f.NombrePelicula,
    SUM(p.PrecioEntrada) / COUNT(f.NombrePelicula) AS 单场平均收入
FROM funcion f
JOIN pelicula p ON f.NombrePelicula = p.NombrePelicula -- 假设两张表通过电影名称关联
GROUP BY f.NombrePelicula
HAVING COUNT(f.NombrePelicula) > 1; -- 保留原逻辑中仅统计场次>1的电影

场景2:计算所有演出的平均票价

如果是求所有场次的平均单张票价(假设PrecioEntrada是单张票价):

SELECT AVG(p.PrecioEntrada) AS 所有场次平均票价
FROM funcion f
JOIN pelicula p ON f.NombrePelicula = p.NombrePelicula;

原代码逻辑问题说明

原代码中用全局总票价除以分组场次数量的逻辑不符合业务需求,因为全局总和与单个电影的场次没有对应关系,应该针对每个电影单独计算其总票房和场次,才能得到有意义的每场平均票价。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 06:31:05