2014-07-16 3 views
0

5 분마다 실행되는 node.js 스크립트가 있고 아래 테이블에 데이터가 삽입됩니다. IBM Db2 데이터베이스에서 timestamp 데이터 유형을 사용하여 각 행을 식별합니다.문제 쓰기 nodejs를 사용하여 쿼리 선택

node.js에이 테이블에 연결하고 데이터를 시간별로 표시하는 쿼리를 작성하려고합니다. 나는 5 분마다 실행되기 때문에 하루에 여러 시간에 여러 행이 생기기 때문에 행을 선택하는 방법을 이해하는 데 어려움을 겪고 있습니다. 나는 테이블에서 매 시간의 첫 번째 행을 선택하고 표시하는 논리를 작성하려고합니다. 따라서 어느 날 24 개의 행이 반환됩니다.

나는 각 시간의 첫 번째 행을 선택하거나 각 시간의 평균 계산을 할 수 있습니다. 그러나, 나는 그것에 대한 쿼리를 작성하는 방법을 혼란스러워합니다. 누군가 내가 내가 사용해야하는 것을 이해하도록 도와 줄 수 있습니까?

select SQLDB_MAX,SQLDB_ASSIGNED, (SQLDB_ASSIGNED + SQLDB_POOLED) As SUMOFAP 
from (
    select SQLDB_MAX, SQLDB_ASSIGNED, SQLDB_POOLED 
     , row_number() over (partition by date(SQLDB_TIMESTAMP) 
              , hour(SQLDB_TIMESTAMP) 
           order by SQLDB_TIMESTAMP) as rn 
    from TOTALS 
) where rn = 1 

생각은 행들이 시간에 따라 각각의 날짜와 시간 순서 내에서 우리는, 우리가 다음 선택할 수 있다는 것입니다 :

CREATE TABLE TOTALS(

    SQLDB_POOLED INT, 
    SQLDB_MAX INT, 
    SQLDB_ASSIGNED INT, 

    SQLDB_TIMESTAMP TIMESTAMP NOT NULL DEFAULT CURRENT TIMESTAMP 
) ; 

ibmdb.open(dsnString, function (err,conn) { 

     if (err) return console.log(err); 

     conn.query('select SQLDB_MAX,SQLDB_ASSIGNED,(SQLDB_ASSIGNED + SQLDB_POOLED) As SUMOFAP from TOTALS, function (err, data) { 
     if (err) console.log(err); 

     console.log(data); 
     res.send(JSON.stringify(data)); 

     conn.close(function() { 
      console.log('done'); 
     }); 
     }); 
    }); 

답변

0

여기 하나 possability의 Node.js를 첫 번째 파티션은 각 파티션 내에 있습니다.