0

我试图从其他一些帖子中阅读 not a group by expression 错误,但他们都提到了组函数,例如 MAX、MIN 等。我没有使用任何一个,它是一个非常简单的查询,返回这种错误.

SELECT * 
FROM   ad_voarnet_atendimento_pista 
WHERE  is_closed = 0 
GROUP  BY prefixo 
ORDER  BY prefixo 

我在这里做错了什么?

编辑:

预期的结果与 MySQL 通过此查询给我的结果相同。它将排除列 PREFIXO 的每个重复值。我只想要提到的列中每个值的 1 条记录。错误信息是这样的:

[Err] ORA-00979: not a GROUP BY expression
4

1 回答 1

3

除了可能对行进行重复数据删除之外,在聚合函数(如 )的GROUP BY上下文之外, 没有用处。MIN() MAX() SUM() COUNT()只需将其删除。如果您希望对结果进行重复数据删除,请DISTINCT改用。如果您使用,除非您更具体地了解列表中的列(不包括主键列),DISTINCT否则它不会有太大价值。SELECT

SELECT
  DISTINCT * 
FROM 
  AD_VOARNET_ATENDIMENTO_PISTA 
WHERE IS_CLOSED = 0
ORDER BY PREFIXO

GROUP BY有时与ORDER BY. 你已经有一个ORDER BY PREFIX0

于 2012-11-14T15:09:39.890 回答