0

当我使用 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

任何想法为什么我有这个错误?

4

3 回答 3

2

您的查询是:

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

或者将 替换*为有效的列名。

于 2013-04-02T15:24:22.420 回答
0

使用计数(*)。count(o) 用于休眠而不是用于 sql 查询

于 2013-04-02T15:30:00.047 回答
0

您需要像 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
  /
于 2013-04-02T16:10:24.403 回答