【发布时间】:2020-05-07 12:06:24
【问题描述】:
我想按小时查询表中列值在当天的事务计数,因为我想在图表中显示这些计数。
即使在没有记录的几个小时内我也无法显示结果,在这种情况下我应该打印 0 个计数,我已经尝试过
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");
【问题讨论】:
-
任何其他解决方案也会有所帮助