oracle - Sum Every N Records SQL -
i have query, returns (right below 'query results') grouped date(varchar), , values. vehicles have passed toll plazas.
select substr(cab_momento,1,12), sum(case when comvsauto = '1' , nome in ('sul','oeste') 1 else 0 end) sul_oeste_auto, sum(case when comvsauto = '0' , nome in ('sul','oeste') 1 else 0 end) sul_oeste_com, sum(case when comvsauto = '1' , nome in ('norte','leste') 1 else 0 end) norte_leste_auto, sum(case when comvsauto = '0' , nome in ('norte','leste') 1 else 0 end) norte_leste_com (select a.idtransaccion, a.cab_momento, a.cab_via, a.comvsauto, b.nome (select idtransaccion, cab_momento, cab_via, cab_estacion estacion, case ctl_clase when '01' 1 when '07' 1 when '08' 1 else 0 end comvsauto usrhost.atransaccion cab_momento > '20170818000000') inner join (select sen.estacion estacion, via.via via, sen.nome nome usrhost.aestacion_sentido sen inner join usrhost.avia via on sen.estacion = via.estacion , substr(via.via,3,1) = sen.sentido order 1,2) b on b.via = a.cab_via , b.estacion = a.estacion) group substr(cab_momento,1,12) order 1 i need sum every 15 minutes (1st column).
for example: minute x minute y - 1231 | 12314 | 1241 | 21415 minute x+15 minute y+15 - 1111 | 13344 | 1345 | 22455 ...
thank in advance

work it! thank much.
select substr(cab_momento,1,10) ||' '|| case when to_number(substr(cab_momento,11,2)) < 15 '00-15' when to_number(substr(cab_momento,11,2)) < 30 '15-30' when to_number(substr(cab_momento,11,2)) < 45 '30-45' else '45-00' end time_period, sum(sul_oeste_auto), sum(sul_oeste_com),sum(norte_leste_auto), sum(norte_leste_com) ( select substr(cab_momento,1,12) cab_momento, sum(case when comvsauto = '1' , nome in ('sul','oeste') 1 else 0 end) sul_oeste_auto, sum(case when comvsauto = '0' , nome in ('sul','oeste') 1 else 0 end) sul_oeste_com, sum(case when comvsauto = '1' , nome in ('norte','leste') 1 else 0 end) norte_leste_auto, sum(case when comvsauto = '0' , nome in ('norte','leste') 1 else 0 end) norte_leste_com (select a.idtransaccion, a.cab_momento, a.cab_via, a.comvsauto, b.nome (select idtransaccion, cab_momento, cab_via, cab_estacion estacion, case ctl_clase when '01' 1 when '07' 1 when '08' 1 else 0 end comvsauto usrhost.atransaccion cab_momento > '20170818000000') inner join (select sen.estacion estacion, via.via via, sen.nome nome usrhost.aestacion_sentido sen inner join usrhost.avia via on sen.estacion = via.estacion , substr(via.via,3,1) = sen.sentido order 1,2) b on b.via = a.cab_via , b.estacion = a.estacion) group substr(cab_momento,1,12) order 1) group substr(cab_momento,1,10),case when to_number(substr(cab_momento,11,2)) < 15 '00-15' when to_number(substr(cab_momento,11,2)) < 30 '15-30' when to_number(substr(cab_momento,11,2)) < 45 '30-45' else '45-00' end order 1
Comments
Post a Comment