求和每N个记录SQL

时间:2017-08-18 18:15:32

标签: sql oracle plsql

我有这个查询,它返回(查询结果右下方)一个分组日期(varchar)和一些值。 它们是通过收费广场的车辆。

SELECT SUBSTR(CAB_MOMENTO,1,12),
Sum(CASE WHEN COMVSAUTO = '1' AND NOME IN ('SUL','OESTE') THEN 1 ELSE 0 END) 
SUL_OESTE_AUTO,
Sum(CASE WHEN COMVSAUTO = '0' AND NOME IN ('SUL','OESTE') THEN 1 ELSE 0 END) 
SUL_OESTE_COM,
Sum(CASE WHEN COMVSAUTO = '1' AND NOME IN ('NORTE','LESTE') THEN 1 ELSE 0 
END) NORTE_LESTE_AUTO,
Sum(CASE WHEN COMVSAUTO = '0' AND NOME IN ('NORTE','LESTE') THEN 1 ELSE 0 
END) NORTE_LESTE_COM FROM
(SELECT a.idtransaccion, a.cab_momento, a.cab_via, a.comvsauto, b.NOME
FROM
(select idtransaccion, cab_momento, cab_via, cab_estacion AS ESTACION,
CASE ctl_clase
WHEN '01' THEN 1
WHEN '07' THEN 1
WHEN '08' THEN 1
ELSE 0
END comvsauto
FROM usrhost.atransaccion
WHERE cab_momento > '20170818000000') a
INNER join
(SELECT sen.estacion AS ESTACION, via.via AS VIA, sen.nome AS NOME FROM 
usrhost.aestacion_sentido sen
INNER JOIN usrhost.avia via ON
sen.estacion = via.estacion
AND SubStr(via.via,3,1) = sen.sentido
ORDER BY 1,2) b ON
b.VIA = a.cab_via
AND b.ESTACION = a.ESTACION)
GROUP BY SUBSTR(CAB_MOMENTO,1,12)
ORDER BY 1

我需要每15分钟一次(第1列)。

例如: 从分X到分钟Y - 1231 | 12314 | 1241 | 21415 从分钟X + 15到分钟Y + 15 - 1111 | 13344 | 1345 | 22455 ...

先谢谢你

Query Results

2 个答案:

答案 0 :(得分:0)

您可以使用下面的表达式为您提供日期时间,其中会议记录调整为四分之一小时。这将使您能够轻松地分组到时间和日期。

CONVERT(datetime, LEFT(CONVERT(varchar(30), cab_momento, 126), 14) + RIGHT('0' + CONVERT(varchar(2), DATEPART(MINUTE, cab_momento) / 15 * 15), 2) + ':00.000', 126)

答案 1 :(得分:0)

工作吧!非常感谢你。

var start = 0;
        $(document).on("click","#add_button",function(){
            start++;
  $(".result").append($('<button id="add_button">Add'+start+'</button>').addClass('button'+start));
});
        $(document).on("click","#delete_button",function(){
            start--;
  $(".result").find('#add_button').each(function(index, el) {
    $('.button'+start).remove();
  });;
});

ORDER BY 1