Я пытаюсь объединить функцию GROUP BY
с MAX в оракуле. Я читал много документации вокруг, попытаться выяснить, как форматировать мой запрос, Oracle всегда возвращается:Как использовать GROUP BY в столбце CLOB с Oracle?
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, посмотрите, что slay oracle ожидал некоторый тип данных и получил CLOB insteab - который является типом BT – Xavier
Вы не можете делать 'group by' в столбце 'CLOB' - зачем вам это вообще нужно? Если вам нужен max(), тогда 'CLOB' не похож на правильный тип данных. И если вы храните номера в 'LOG.V', то почему бы вам не определить его как' number' ?. Это очень плохой дизайн для хранения чисел в столбцах «varchar». –