小编典典

ORA-00979不是按表达式分组

sql

我正在使用以下查询获取ORA-00979:

SELECT cr.review_sk, cr.cs_sk, cr.full_name,
tolist(to_char(cf.fact_date, 'mm/dd/yyyy')) "appt",
cs.cs_id, cr.tracking_number
from review cr, cs, fact cf
where cr.cs_sk = cs.cs_sk
and UPPER(cs.cs_id) like '%' || UPPER(i_cs_id) || '%'
and row_delete_date_time is null
and cr.review_sk = cf.review_wk (+)
and cr.fact_type_code (+) = 183050
GROUP BY cr.review_sk, cr.cs_sk, cf.fact_date, cr.tracking_number
ORDER BY cs.cs_id, cr.full_name;

我找不到在同一查询中同时具有GROUP BY和ORDER BY子句的任何示例。我尝试一次从组中删除每个字段,但仍然遇到相同的错误。


阅读 189

收藏
2021-05-05

共1个答案

小编典典

你必须把的所有列SELECTGROUP BY或使用的压缩结果为单一值(如对他们的功能MINMAXSUM)。

一个简单的示例来了解为什么会发生这种情况:假设您有一个这样的数据库:

FOO BAR
0   A
0   B

然后你跑了SELECT * FROM table GROUP BY foo。这意味着数据库必须返回第一行的结果作为第一行0来满足,GROUP BY但是现在有两个值bar可供选择。您期望得到哪个结果-AB?还是数据库应该返回多个行,从而违反的约定GROUP BY

2021-05-05