当我使用 Mysql 时,我有一个对我有用的查询。现在我在 Oracle 上收到此错误:
ORA-00979: not a GROUP BY expression
这是查询:
SELECT o.neNesId, COUNT(o)
FROM ParNe AS o
WHERE o.neBanId = :neBanId
GROUP BY o.neNesId
任何想法为什么我有这个错误?
您的查询是:
SELECT o.neNesId, COUNT(o)
FROM ParNe AS o
WHERE o.neBanId = :neBanId
GROUP BY o.neNesId
我的猜测是这o.o
不是一个有效的领域。因此,您有一个需要列名的表名。试试这个:
SELECT o.neNesId, COUNT(*)
FROM ParNe AS o
WHERE o.neBanId = :neBanId
GROUP BY o.neNesId
或者将 替换*
为有效的列名。
使用计数(*)。count(o) 用于休眠而不是用于 sql 查询
您需要像 Gordon 的示例中那样选择 count(*) 或 count(1)。如果你坚持使用你的查询语法,这根本没有必要,那么试试这个:
SELECT neNesId, count(o) AS o_cnt
FROM
( -- your query here --
SELECT 1 neNesId, 2 AS o FROM dual
)
GROUP BY neNesId
/