我正在尝试组合 GROUP BY
oracle 中带有 MAX 的函数。我阅读了很多文档,尝试弄清楚如何格式化 Oracle 总是返回的请求:
ORA-00979: "not a group by expression"
这是我的要求:
SELECT A.T_ID, B.T, MAX(A.V)
FROM bdd.LOG A, bdd.T_B B
WHERE B.T_ID = A.T_ID
GROUP BY A.T_ID
HAVING MAX(A.V) < '1.00';
有什么建议吗?
编辑我的字段的数据类型似乎有一些棘手的部分。
-
T_ID
是VARCHAR2
-
A.V
是VARCHAR2
-
B.T
是CLOB
最佳答案
我非常熟悉为其他人设计的表编写查询来执行与您想要的几乎完全不同的操作的现象。当我遇到同样的问题时,我就使用过。
GROUP BY TO_CHAR(theclob)
当然,您也必须在输出中TO_CHAR
clob。
请注意,这个问题有两个级别...第一个是你有一个不需要是 clob 的 clob 列;它只包含一些适合 VARCHAR2
的小字符串。我的解决方法适用于此。
第二个级别是您实际上想要按包含大字符串的列进行分组。在这种情况下,TO_CHAR
可能不会有帮助。
关于sql - 如何在 Oracle 中对 CLOB 列使用 GROUP BY?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20678881/