1

我正在尝试使用以下代码从 Aster 中的表中获取示例Teradata数据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.

4

3 回答 3

3

如果你想要一个样本,你应该使用内置的样本功能。

对于 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-14T10:03:31.530 回答
0

您还可以使用QUALIFYTeradata 中的子句删除外部SELECT

SELECT col
FROM nisha_test.test_table
QUALIFY ROW_NUMBER() OVER (ORDER BY NULL) <= 10000

在 Teradata 中,我认为您可以在ORDER BY. 您甚至可以ORDER BY完全排除:ROW_NUMBER() OVER()

于 2019-11-14T06:49:49.687 回答
0

We can use the LIMIT keyword to get random values from a table or a view in Aster DB.

select * from "nisha_test"."test_table" limit 10000;
于 2019-11-19T07:01:37.983 回答