выборка данных в группах в Teradata - PullRequest
0 голосов
/ 20 февраля 2012

Предположим, у меня есть таблица 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 голосов
/ 21 февраля 2012

Мне не кажется, что это можно сделать с помощью предложения sample.Вы должны быть в состоянии достичь того же результата с помощью чего-то вроде этого:

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