作者:nissunshine | 来源:互联网 | 2023-10-10 11:37
我正在尝试使用Teradata
通过以下代码从Aster order by
中的表中获取示例数据:
SELECT "col"
FROM (SELECT "col",Row_number()
OVER (
ORDER BY 1) AS RANK
FROM "nisha_test"."test_table") a
WHERE rank <= 10000
我想获得随机的10000
行而不使用order by
。
如果要获取样本,则应使用内置的样本功能。
对于Aster(或Vantage MLE,但语法略有不同),有一个RandomSample运算符,例如
SELECT * FROM RandomSample (
ON (SELECT 1) PARTITION BY 1 -- dummy data,but needed
InputTable ('nisha_test.test_table')
NumSample ('10000')
)
对于Teradata,有SAMPLE子句,例如
select *
from nisha_test.test_table
SAMPLE 10000
,
您还可以在Teradata中使用a 1
b 3
c 0
dtype: int64
子句删除外部的xsorted.iloc[0]
:
QUALIFY
在Teradata中,我认为您可以在SELECT
中使用恒定值。您甚至可以完全排除SELECT col
FROM nisha_test.test_table
QUALIFY ROW_NUMBER() OVER (ORDER BY NULL) <= 10000
:ORDER BY
,
我们可以使用LIMIT
关键字从Aster DB中的表或视图中获取随机值。
select * from "nisha_test"."test_table" limit 10000;