ORA-00979: select distinct(concat 列)不是按表达式分组

ORA-00979 : select distinct(concat column) not a group by expression

我通过以下查询得到 ORA-00979:

SELECT 
 DISTINCT ((colA || SUBSTR(colB, 1, 2))) AS colA 
FROM myTable 
WHERE colC='5678'
GROUP BY colA

我有一个名为 myTable 的 table,它具有三列(colA、colB 和 colC)。
我想在我的 select 结果中包含:列 colA 值和列 colB 的前两个值的串联。此外,我想按结果分组。但是,我收到 ORA-00979 而不是按表达式分组的错误。
我该如何解决?

您可以在 GROUP BY 子句中重复出现在 SELECT:

中的整个表达式
SELECT DISTINCT colA || SUBSTR(colB, 1, 2) AS colA
FROM myTable
WHERE colC = '5678'
GROUP BY colA || SUBSTR(colB, 1, 2);

Oracle 不支持使用别名或使用 12 等位置参数进行分组。并注意 DISTINCT 不是 SQL 函数。