我正在尝试使用以下代码使用order by从Aster Teradata中的一个表中获取样本数据:
SELECT "col"
FROM (SELECT "col",
Row_number()
OVER (
ORDER BY 1) AS RANK
FROM "nisha_test"."test_table") a
WHERE rank <= 10000 我想在不使用order by的情况下获得随机的10000行。
发布于 2019-11-19 15:01:38
我们可以使用LIMIT关键字从Aster DB中的表或视图中获取随机值。
select * from "nisha_test"."test_table" limit 10000;发布于 2019-11-14 18:03:32
如果你想要一个样本,你应该使用内置的样本特性。
对于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发布于 2019-11-14 14:49:50
您还可以在Teradata中使用QUALIFY子句来删除外部SELECT
SELECT col
FROM nisha_test.test_table
QUALIFY ROW_NUMBER() OVER (ORDER BY NULL) <= 10000在Teradata中,我认为可以在ORDER BY中使用常量值。您甚至可以完全排除ORDER BY:ROW_NUMBER() OVER()
https://stackoverflow.com/questions/58849916
复制相似问题