Я хочу запросить количество транзакций для значений столбца в таблице по часам за текущий день, потому что я хочу показать это количество на графике.
У меня проблемы с отображением результатов даже для часов без записей, в этом случае я должен напечатать 0 count, я пробовал с
with tmpTable as
(
select
(minHourSeq + level-1) hourSeq
from
(select
min(extract (hour from TXN_DATE_TIME)) minHourSeq,
max(extract (hour from TXN_DATE_TIME)) maxHourSeq
from
TRANSACTION_REQUEST) v
connect by
(minHourSeq + level-1) <= maxHourSeq
)
select
a.hourSeq as hour, nvl(count(b.transaction), 0) as count
from
TRANSACTION_REQUEST b, tmpTable a
where
a.hourSeq = extract(hour from b.TXN_DATE_TIME(+))
group by
a.hourSeq
order by
1;
Он работает, пока я выполняю его в Oracle SQL разработчике, но я получаю сообщение об ошибке
ORA-00907: отсутствует правая скобка
при попытке реализовать с моим кодом
Query query = entityManager.createNativeQuery(
"with tmpTable as (select (minHourSeq + level-1) hourSeq from (select min(extract (hour from txnDate)) minHourSeq, max(extract (hour from txnDate)) maxHourSeq from "
+ TransactionRequest.class.getName()
+ " ) v connect by (minHourSeq + level-1) <= maxHourSeq) "
+ "select a.hourSeq as hour,nvl(count(b.transaction),0) as count from "
+ TransactionRequest.class.getName()
+ " b,tmpTable a a.hourSeq = extract(hour from b.txnDate(+)) group by a.hourSeq order by 1");