【发布时间】:2021-08-15 01:01:03
【问题描述】:
我的查询如下所示
select f.entity, MAX(to_char(f.whencreated, 'MM/DD/YYYY HH24:MI:SS')) from fan f
group by f.entity
having MAX((f.whencreated)) >
(select MAX((b.endtime)) from brun b
where b.cny# = f.cny#
and b.entity = f.entity
group by b.entity, f.entity);
我收到错误
ORA-00979: not a GROUP BY expression
在此查询中,如果表 f 中该实体的 Max(whencreated) 大于表 brun 中同一实体的 MAX((b.endtime)),我想选择 f.entity。
表格如下所示:
桌扇:
ENTITY WHENCREATED
A 09/01/2020 12:34:00
A 10/01/2020 12:12:12
B 08/01/2020 12:34:00
B 10/01/2020 12:12:12
烧表:
ENTITY ENDTIME
A 09/02/2020 12:34:00
A 09/04/2020 12:12:12
B 08/01/2020 12:34:00
B 11/01/2020 12:12:12
查询应该返回
A 10/01/2020 12:12:12
因为实体 A 的 max(brun.endtime) 是 09/04/2020 12:12:12,它小于实体 A 的 max(fan.whencreated),即 10/01/2020 12:12:12。
【问题讨论】:
-
请提供样本数据、期望的结果以及清晰的逻辑解释。
-
您的内部查询在实体上有一个组,而它们没有被选中。可能是因为这个?
-
我添加了示例数据
标签: sql oracle group-by having-clause