Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql Netezza LAST_值过滤器_Sql_Database Partitioning_Netezza - Fatal编程技术网

Sql Netezza LAST_值过滤器

Sql Netezza LAST_值过滤器,sql,database-partitioning,netezza,Sql,Database Partitioning,Netezza,我正在尝试创建一个NETEZZA表,该表只包含特定键的最新记录-例如,想象一个表(MYTABLE),如下所示: Col1 Col2 TIMESTAMP xxxx xxxx 13:45 xxxx xxxx 13:46 xxxx yyyy 10:00 Col1 Col2 TIMESTAMP xxxx xxxx 13:46 xxxx yyyy 10:00 我想返回如下表格: Col1 Col2 TIMESTAMP xxxx xxxx 13:45 xxxx xxxx 13:46 xxxx yyyy

我正在尝试创建一个NETEZZA表,该表只包含特定键的最新记录-例如,想象一个表(MYTABLE),如下所示:

Col1 Col2 TIMESTAMP
xxxx xxxx 13:45
xxxx xxxx 13:46
xxxx yyyy 10:00
Col1 Col2 TIMESTAMP
xxxx xxxx 13:46
xxxx yyyy 10:00
我想返回如下表格:

Col1 Col2 TIMESTAMP
xxxx xxxx 13:45
xxxx xxxx 13:46
xxxx yyyy 10:00
Col1 Col2 TIMESTAMP
xxxx xxxx 13:46
xxxx yyyy 10:00
我想我需要一些大致如下的代码:

  Create table MYNEWTABLE as
    select *
    from MYTABLE
    WHERE rowid in
    (
    SELECT LAST_VALUE(rowid)
    OVER (PARTITION BY COL1, COL2
          ORDER BY TIMESTAMP)
          FROM MYTABLE
    )
    ORDER BY COL1,COL2
    distribute on (COL1)

然而,这并没有真正起作用,有人能提出建议吗?(特别是如何通过col1/col2分区内的timestamp的最后一个值过滤表)

明白了-终于!罗维德用词不当。向Netezza社区的Shawn Fox寻求灵感

  Create table MYNEWTABLE as select * from
    (select *
            ,row_number() over (
                 partition by COL1, COL2 order by TIMESTAMP desc
                               ) row
       from MYTABLE 
    ) x
    WHERE x.row=1
    distribute on (COL1)

下面的查询应该可以正常工作

创建表时间戳\u数据\u最新 作为 选择Col1、Col2、MAX(Timestamp\u val)作为最新的\u时间戳 从时间戳数据 按Col1、Col2分组

问候,,
如果您正在尝试实施SCD2,请使用Venk。。我的意思是只从源表向目标表插入新记录,然后可以执行左外部联接并将数据插入目标表。
如果您的要求不同,请纠正我

hmmm-不要这样认为,也许我的问题不清楚(应该添加一些虚拟记录)。我希望创建一个表,该表只包含特定键的最新记录。。(我在示例中只显示了键和时间戳)。