Teradata中的ROWNUM等效值

Teradata中的ROWNUM等效值,teradata,Teradata,teradata中是否有与“ROWNUM”等效的内容?我必须在teradata中实现以下查询,它在oracle中运行良好。有什么想法或建议吗 INSERT INTO ADDRES(CITY,STATEPROVINCEID) SELECT 'sample',AA.ID FROM AA WHERE ROWNUM<=1000 插入地址(城市,州ProvinceId)选择“样本”,AA.ID从 AA其中ROWNUM因为没有顺序,您可以简单地使用: INSERT INTO ADDR

teradata中是否有与“ROWNUM”等效的内容?我必须在teradata中实现以下查询,它在oracle中运行良好。有什么想法或建议吗

    INSERT INTO ADDRES(CITY,STATEPROVINCEID) SELECT 'sample',AA.ID FROM
    AA WHERE ROWNUM<=1000
插入地址(城市,州ProvinceId)选择“样本”,AA.ID从

AA其中ROWNUM因为没有顺序,您可以简单地使用:

INSERT INTO ADDRES(CITY,STATEPROVINCEID) 
SELECT TOP 1000 'sample',AA.ID 
FROM AA
但这不是随机的,它只是在放大器上发现的前1000行

要获取采样行,请执行以下操作:

INSERT INTO ADDRES(CITY,STATEPROVINCEID) 
SELECT 'sample',AA.ID 
FROM AA
SAMPLE 1000
如果您是统计学家,需要真正的随机样本切换到:

SAMPLE RANDOMIZED ALLOCATION 1000
您还可以获取多个样本,最多16个,例如

SAMPLE 1000,2000 --use column SAMPLEID to know which row belongs to which sample 
或分数样本:

SAMPLE 0.1 -- 10% of the rows
或分层样本,即来自不同群体的样本:

SAMPLE WHEN col< 0 THEN 10
       WHEN col <100 THEN 20 
       ELSE 50 
END
当col<0然后是10时采样

当col没有订单时,您可以简单地使用:

INSERT INTO ADDRES(CITY,STATEPROVINCEID) 
SELECT TOP 1000 'sample',AA.ID 
FROM AA
但这不是随机的,它只是在放大器上发现的前1000行

要获取采样行,请执行以下操作:

INSERT INTO ADDRES(CITY,STATEPROVINCEID) 
SELECT 'sample',AA.ID 
FROM AA
SAMPLE 1000
如果您是统计学家,需要真正的随机样本切换到:

SAMPLE RANDOMIZED ALLOCATION 1000
您还可以获取多个样本,最多16个,例如

SAMPLE 1000,2000 --use column SAMPLEID to know which row belongs to which sample 
或分数样本:

SAMPLE 0.1 -- 10% of the rows
或分层样本,即来自不同群体的样本:

SAMPLE WHEN col< 0 THEN 10
       WHEN col <100 THEN 20 
       ELSE 50 
END
当col<0然后是10时采样

当col时,我不确定它对您的情况是否有帮助,但为了将来的参考,Teradata有一个ROW_NUMBER()函数。它的工作原理与其他人的工作原理非常相似:

ROW_NUMBER over ([PARTITION by <column>] ORDER by <column1>[<column2]...]).

我不确定这对您的情况是否有帮助,但为了将来参考,Teradata有一个ROW_NUMBER()函数。它的工作原理与其他人的工作原理非常相似:

ROW_NUMBER over ([PARTITION by <column>] ORDER by <column1>[<column2]...]).

“sample”只是我插入的一个字符串,我在AA中取id的值,插入的行数可能会有所不同。当我尝试您的示例代码时,它运行,但没有插入行。0行插入查询1,共1行已用时间(秒)-总计:0.107,SQL查询:0.107,生成输出:0奇怪的是,您使用的客户端是什么?当您只运行select并且它不返回任何行时,表应该是空的:-)我使用的是squirrel。AA表只包含ID作为列,只有10个值,我正在创建ADDRES表,因为我正在使用AA.ID值插入1000条记录源表中只有10行,您想从中选择前1000行吗?奇怪,但问题可能是定义了目标表,做了一个SHOW表目标;它是一个创建集表,即在插入/选择过程中以静默方式删除重复行。将其更改为MULTISET,然后使用SAMPLE WITH REPLACEMENT 1000用一条语句插入1000行。它的MULTISET表有两列ADDRES(CITY,STATEPROVINCEID)。在oracle中,它会自动填充重复的值,这就是我需要它的原因。“sample”只是我插入的一个字符串,我在AA中取id的值,插入的行数可能会有所不同。当我尝试您的示例代码时,它运行,但没有插入行。0行插入查询1,共1行已用时间(秒)-总计:0.107,SQL查询:0.107,生成输出:0奇怪的是,您使用的客户端是什么?当您只运行select并且它不返回任何行时,表应该是空的:-)我使用的是squirrel。AA表只包含ID作为列,只有10个值,我正在创建ADDRES表,因为我正在使用AA.ID值插入1000条记录源表中只有10行,您想从中选择前1000行吗?奇怪,但问题可能是定义了目标表,做了一个SHOW表目标;它是一个创建集表,即在插入/选择过程中以静默方式删除重复行。将其更改为MULTISET,然后使用SAMPLE WITH REPLACEMENT 1000用一条语句插入1000行。它的MULTISET表有两列ADDRES(CITY,STATEPROVINCEID)。在oracle中,它会自动填充重复的值,这就是我需要它的原因。