首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在不使用order by的情况下从Aster Teradata中的表或视图中获取样本数据?

如何在不使用order by的情况下从Aster Teradata中的表或视图中获取样本数据?
EN

Stack Overflow用户
提问于 2019-11-14 13:25:08
回答 3查看 212关注 0票数 1

我正在尝试使用以下代码使用order by从Aster Teradata中的一个表中获取样本数据:

代码语言:javascript
复制
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行。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-11-19 15:01:38

我们可以使用LIMIT关键字从Aster DB中的表或视图中获取随机值。

代码语言:javascript
复制
select * from "nisha_test"."test_table" limit 10000;
票数 0
EN

Stack Overflow用户

发布于 2019-11-14 18:03:32

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

对于Aster (或Vantage MLE,但语法略有不同),有一个RandomSample运算符,例如

代码语言:javascript
复制
SELECT * FROM RandomSample (
  ON (SELECT 1) PARTITION BY 1 -- dummy data, but needed
  InputTable ('nisha_test.test_table')
  NumSample ('10000')
)

对于Teradata,有SAMPLE子句,例如

代码语言:javascript
复制
select * 
from nisha_test.test_table 
SAMPLE 10000
票数 3
EN

Stack Overflow用户

发布于 2019-11-14 14:49:50

您还可以在Teradata中使用QUALIFY子句来删除外部SELECT

代码语言:javascript
复制
SELECT col
FROM nisha_test.test_table
QUALIFY ROW_NUMBER() OVER (ORDER BY NULL) <= 10000

在Teradata中,我认为可以在ORDER BY中使用常量值。您甚至可以完全排除ORDER BYROW_NUMBER() OVER()

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58849916

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档