我正在尝试将GROUP BY功能与oracle中的MAX结合起来。我阅读了许多文档,试图弄清楚如何通过Oracle格式化我的请求,该方法总是返回:
GROUP BY
ORA-00979:“不是按表达式分组”
这是我的要求:
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
B.T
CLOB
经过一些修复后,似乎主要问题在于 group by
group by
您必须在SELECT和中使用相同的表GROUP BY
SELECT
我还仅使用CLOB的子字符串来使其工作。工作要求是:
SELECT TABLE_A.ID, TABLE_A.VA, B.TRACE FROM (SELECT A.T_ID ID, MAX(A.V) VA FROM BDD.LOG A GROUP BY A.T_ID HAVING MAX(A.V) <= '1.00') TABLE_A, BDD.T B WHERE TABLE_A.ID = B.T_id;