gpt4 book ai didi

java - 为什么我在这里得到 ORA-00979?

转载 作者:行者123 更新时间:2023-12-02 13:31:47 26 4
gpt4 key购买 nike

SELECT e1.nombreEquipo, p1.idTemporada, COUNT (*)
FROM equipo e1 INNER JOIN partido p1
ON e1.nombreEquipo = p1.nombreLocal OR
e1.nombreEquipo = p1.nombreVisitante
WHERE p1.golesLocal = p1.golesVisitante
GROUP BY e1.nombreEquipo, p1.idTemporada
HAVING COUNT(*) >=
(
SELECT COUNT (*)
FROM partido p2
WHERE (e1.nombreEquipo = p2.nombreLocal OR e1.nombreEquipo = p2.nombreVisitante) AND (p1.golesLocal = p2.golesLocal) AND
(p1.idTemporada = p2.idTemporada)
)

我尝试将此代码用于 SQL 查询,但当我尝试运行该脚本时收到 ORA-00936 错误。我在几页上读到此错误是由于未将所有选择列按行分组而引起的,但我认为我没有错过任何一个。

第一次使用SQL,不太了解。

最佳答案

问题出在 HAVING 子句中:

HAVING COUNT(*) >= (
SELECT COUNT (*)
FROM partido p2
WHERE (e1.nombreEquipo = p2.nombreLocal OR
e1.nombreEquipo = p2.nombreVisitante
) AND (p1.golesLocal = p2.golesLocal) AND
-----------------^
(p1.idTemporada = p2.idTemporada)
)

p1.golesLocal不在GROUP BY中,因此在聚合后不能使用它,除非它是聚合函数的参数。

我无法提出修复建议,因为我不知道查询的意图。

关于java - 为什么我在这里得到 ORA-00979?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43160432/

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