2017-03-13 9 views
0

30分のデータがあり、現在の午前2時から翌日02時に曜日と時間を合計したい場合、どうすればいいですか? :最後に特定の期間の合計とグループ化の方法

create table test (code varchar2(50), hour number, daytime date); 

insert into test (code, hour, daytime) values ('K11','0.5','23-Feb-17') 
insert into test (code, hour, daytime) values ('K11','0.5','23-02-17 00:30') 
insert into test (code, hour, daytime) values ('K11','0.5','23-02-17 01:00') 
insert into test (code, hour, daytime) values ('K11','0.5','23-02-17 01:30') 
insert into test (code, hour, daytime) values ('K11','0.5','23-02-17 02:00') 
insert into test (code, hour, daytime) values ('K11','0.5','23-02-17 02:30') 
insert into test (code, hour, daytime) values ('K11','0.5','24-Feb-17') 
insert into test (code, hour, daytime) values ('K11','0.5','24-02-17 00:30') 
insert into test (code, hour, daytime) values ('K11','0.5','24-02-17 01:00') 
insert into test (code, hour, daytime) values ('K11','0.5','24-02-17 01:30') 
insert into test (code, hour, daytime) values ('K11','0.5','24-02-17 02:00') 
insert into test (code, hour, daytime) values ('K11','0.5','24-02-17 02:30') 
insert into test (code, hour, daytime) values ('K12','0.5','23-Feb-17') 
insert into test (code, hour, daytime) values ('K12','0.5','23-02-17 00:30') 
insert into test (code, hour, daytime) values ('K12','0.5','23-02-17 01:00') 
insert into test (code, hour, daytime) values ('K12','0.5','23-02-17 01:30') 
insert into test (code, hour, daytime) values ('K12','0.5','23-02-17 02:00') 
insert into test (code, hour, daytime) values ('K12','0.5','23-02-17 02:30') 
insert into test (code, hour, daytime) values ('K12','0.5','24-Feb-17') 
insert into test (code, hour, daytime) values ('K12','0.5','24-02-17 00:30') 
insert into test (code, hour, daytime) values ('K12','0.5','24-02-17 01:00') 
insert into test (code, hour, daytime) values ('K12','0.5','24-02-17 01:30') 
insert into test (code, hour, daytime) values ('K12','0.5','24-02-17 02:00') 
insert into test (code, hour, daytime) values ('K12','0.5','24-02-17 02:30') 

私は、データを次取得したいのですが:

'K11',3,'23-02-17' 
'K12',3,'23-02-17' 

だから、 '、( 'K11'、 '0.5' からK11のために例えば23-02-17の時間を合計します02:00 ')から(' K11 '、' 0.5 '、' 24-02-17 01:00 ')

答えて

0

これを行うには、 2時間。

select trunc(date - 2/24) as dte, sum(hours) 
from t 
group by trunc(date - 2/24) 
order by dte; 

Oracleは今interval構文をサポートしていますので、あなたもDすることができます:

select trunc(date - interval 2 hour) as dte, sum(hours) 
from t 
group by trunc(date - interval 2 hour) 
order by dte; 
+0

いいえ、それは動作しません、それは2時間を追加し、それはそれが、グループ化なしです。ここでは一つの方法です@ JoeGreen。 –

+0

。 。私はあなたのコメントを理解していません。まず、*これは* 2時間を減算し、*加算しません。第二に、グループ別に集計を行います。 –

+0

ありがとうございます –

関連する問題