Teradata中组内的数据样本

时间:2012-02-20 16:14:45

标签: sql random teradata

假设我有一个week_nbr和cust_id的表。

假设我想要每周抽取500名客户的样本。

愚蠢的方法是每周都这样做:

select cust_id
from week_cust
sample randomized allocation 500
where week_nbr=1

聪明的方式是什么?即,有没有办法让以下概念有效?

select week_nbr
      ,random sample of 500 cust_id in this week
from week_cust

这是在Teradata 12上。

最好,并提前感谢。

1 个答案:

答案 0 :(得分:0)

我不认为使用sample子句可以做到这一点。尽管如此,你应该可以达到相同的结果:

select week_nbr, cust_id
from week_cust
qualify row_number() over (partition by week_nbr order by random(1, 10000)) <= 500