Javascript 使用nodejs编写Select查询时遇到问题

Javascript 使用nodejs编写Select查询时遇到问题,javascript,sql,node.js,db2,db2-luw,Javascript,Sql,Node.js,Db2,Db2 Luw,我有node.js脚本,每5分钟运行一次,并将的数据插入下表。我在IBMDB2数据库中使用时间戳数据类型来标识每一行 我试图在node.js中编写一个查询,该查询将连接到此表并按小时显示数据。我很难理解如何选择行,因为一天中不同的时间会有多行,因为它每5分钟运行一次。我试图编写一个逻辑,它将选择表中每小时的第一行并显示它。因此,一天将返回24行 我可以选择每小时的第一行,也可以对每小时进行平均计算。但是,我不知道如何为此编写查询。有人能帮我理解我应该用什么吗 CREATE TABLE TOTAL

我有node.js脚本,每5分钟运行一次,并将的数据插入下表。我在IBMDB2数据库中使用时间戳数据类型来标识每一行

我试图在node.js中编写一个查询,该查询将连接到此表并按小时显示数据。我很难理解如何选择行,因为一天中不同的时间会有多行,因为它每5分钟运行一次。我试图编写一个逻辑,它将选择表中每小时的第一行并显示它。因此,一天将返回24行

我可以选择每小时的第一行,也可以对每小时进行平均计算。但是,我不知道如何为此编写查询。有人能帮我理解我应该用什么吗

CREATE TABLE TOTALS(

  SQLDB_POOLED INT,
  SQLDB_MAX  INT,
  SQLDB_ASSIGNED INT,

  SQLDB_TIMESTAMP TIMESTAMP NOT NULL DEFAULT CURRENT TIMESTAMP  
  ) ;  
node.js

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');
        });
      });
    });

这里有一个可能性:

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
其思想是,我们在每个日期和小时内根据时间对行进行排序,然后我们可以在每个这样的分区中选择第一个