1

忽略'?DATE1::?'它只是用户输入日期范围的前缀。

Select
       STARTDATEKEY 
       round(avg(Minutes),2) as Time  /*average for 1 day */
from   Table
where To_Date(to_char(StartDate, 'DD-MON-YYYY')) >= To_Date('?DATE1::?','MM/DD/YYYY')
and To_Date(to_char(RESTOREDDATETIME, 'DD-MON-YYYY')) <= To_Date('?DATE2::?','MM/DD/YYYY')
and FLAG = 0
group by STARTDATEKEY 

出来会
在此处输入图像描述

我需要帮助显示20130110 52.67底部时间列的平均值

编辑/审稿人注意:我不知道是否应该标记 Oracle 或 SQL。

4

1 回答 1

4

您可以使用ROLLUP分组功能。
应该是这样的:

Select
       STARTDATEKEY 
       round(avg(Minutes),2) as Time  /*average for 1 day */
from   Table
where To_Date(to_char(StartDate, 'DD-MON-YYYY')) >= To_Date('?DATE1::?','MM/DD/YYYY')
and To_Date(to_char(RESTOREDDATETIME, 'DD-MON-YYYY')) <= To_Date('?DATE2::?','MM/DD/YYYY')
and FLAG = 0
group by ROLLUP(STARTDATEKEY)

这是一个简化的 sqlfiddle 演示

于 2013-01-23T20:14:22.707 回答