有人可以通过以下语法指出我的错误。
这很好。
SELECT col1,col2,grouping_id(col1)col3,substr(col2,1,5)col4
FROM tab1
GROUP BY col1, col2,col3,col4
HAVING GROUPING_ID(col1)<=5 order by 1,2,3,4;
这不是:
SELECT col1,col2,grouping_id(col1)col3,substr(col2,1,5)col4
FROM tab1
GROUP BY col1, col2,col3,col4
HAVING GROUPING_ID(col1,substr(col2,1,2))<=5 order by 1,2,3,4;
如何在oracle的grouping_id中使用函数?
错误消息:ORA-00979:不是GROUP BY表达式
答案 0 :(得分:1)
substr(col2,1,2)
不是按表达式分组,而是substr(col2,1,5)
。
您应该在SELECT
substr(col2,1,2)
预测substr(col2,1,2)
或将substr(col2,1,5)
替换为GROUP BY