【发布时间】:2020-12-01 07:45:57
【问题描述】:
我有一个带有 case 语句的查询。
select
COUNTRY_CODE,
CUST_USR_ID,
(
case
when
FACILITY_ID is not null
then
FACILITY_ID
when
ACCOUNT_NO is not null
then
ACCOUNT_CLASS
end
)
ACC_FA_ID, count(1),
(
case
when
FACILITY_ID is not null
then
'FACILITY_ID'
else
'ACCOUNT_CLASS'
end
)
IDENTIFIERS
from
Mytable
where
(
FACILITY_ID is not null
or ACCOUNT_NO is not null
)
group by
COUNTRY_CODE, CUST_USR_ID,
(
case
when
FACILITY_ID is not null
then
FACILITY_ID
when
ACCOUNT_NO is not null
then
ACCOUNT_CLASS
end
)
这个查询给了我错误
ORA-00979: 不是 GROUP BY 表达式
当我从 select 中删除最后一个 case 语句时,它运行良好。请在这方面帮助我
【问题讨论】:
-
请添加一些关于此查询预期执行的描述并添加一些示例数据。错误是因为当您在选择列表中有聚合函数时 - 所有其他选择列表表达式必须包含在“分组依据”子句中
标签: sql oracle oracle11g oracle-sqldeveloper