sql - 如何在 Oracle 中对 CLOB 列使用 GROUP BY?

标签 sql oracle group-by max

我正在尝试组合 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_IDVARCHAR2
  • A.VVARCHAR2
  • B.TCLOB

最佳答案

我非常熟悉为其他人设计的表编写查询来执行与您想要的几乎完全不同的操作的现象。当我遇到同样的问题时,我就使用过。

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/

相关文章:

mysql - 使用 MYSQL QUERY 和 GROUP BY 获取总计和小计

SQL - 如何在幂等插入示例中使用连接而不是 EXISTS 和 NOT EXISTS

sql - 如何在 Oracle SQL 查询中处理/使用百分比 (%) 和与号 (&) 等特殊字符

Oracle 在所有表的所有列中搜索字符串

sql - 如何生成 sysdate-30 和 sysdate+30 之间的所有日期列表?

python - 返回索引在 pandas 中有多于一行的 groupby 结果

mysql - 使用 id 对数据进行分组并从第一行和最后一行获取数据

mysql - 优化查询以计算一张表的两个不同列和不同行的总计

mysql - 我如何使用 laravel 中的联合来创建查询搜索

sql - 如何对每个账户的最后一笔交易进行 SQL 查询?