私はGROUP BY
関数をMAXのoracleに組み合わせようとしています。私の周りのドキュメントをたくさん読んで、常にOracleが私の要求をフォーマットする方法を把握することを試みる返しますOracleでCLOB列の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';
ヒント
EDIT私のフィールドのデータ型にはややこしい部分があります。
T_ID
VARCHAR2
A.V
がVARCHAR2
B.T
であるCLOB
リンゴ(数字)をオレンジ(文字列)と比較しないでください。 '' 1.00''は文字列です*** ***は数字ではありません - ( '1.00'または' 1')は数字です。 –
@a_horse_with_no_nameあなたは正しいです、今は良いです:)しかし、私はまだ932のエラーがあります。見た目は、いくつかのデータ型が期待されていて、CLOB insteabを取得しています--BTのタイプです – Xavier
'group by' 'CLOB'列に - なぜあなたはそれを必要としますか? max()が必要な場合、 'CLOB'は正しいデータ型のようには聞こえません。そして、もしあなたが 'LOG.V'に数字を格納すれば、なぜそれを' number'として定義しないのですか? 'varchar'カラムに数値を格納するのは本当に悪い設計です。 –