在 Teradata 中创建假索引列 SQL

Create fake indexing column in Teradata SQL

我有声明:

SELECT col_a, col_b, col_c from database.table sample 50;

我希望我的输出看起来像这样:

id   col_a   col_b   col_c
1    data    goes    here
2    data    goes    here
3    data    goes    here
4    data    goes    here
5    data    goes    here
6    data    goes    here

基本上 - 我需要为 id 创建一个从 1 开始的列,并随着检索到的每一行自动递增。

我该怎么做?

您可以使用 row_number():

select row_number() over (order by ??) as id, col_a, col_b, col_c
from t;

?? 表示 column/expression 给出 id 的排序。

如果您确实想要对采样行进行编号:

SELECT ROW_NUMBER() OVER (ORDER BY some_field), 
   dt.*
FROM
 (
   SELECT col_a, col_b, col_c 
   FROM database.table
   SAMPLE 50
 ) AS dt

您也可以使用 TOP 而不是 SAMPLE,但那样就不再是随机的了。