Произвольное и заданное значение не работает правильно в запросе Redshift Alation Sql - PullRequest
1 голос
/ 03 августа 2020

У меня есть таблица T1 с user_id и датой создания учетной записи в 2019 или 2018 годах. Я хочу назначить случайную дату каждому пользователю. Для пользователей в 2018 году случайной датой может быть что угодно в 2019 году, но для людей, зарегистрированных в 2019 году, случайная дата должна быть ie между одним днем ​​создания учетной записи и 31 декабря c 2019.

Несмотря на использование упорядочить по и установить начальное число (красное смещение позволяет только случайным образом давать число от 0 до 1), я получаю новую случайную дату для того же user_id , когда я повторно запускаю приведенный ниже код. Это красное смещение, и я использую alation (SQL) для запроса.

 set seed to 0.25;
 select *,
    case when created_date<'2019-01-01' then date(DATEADD(day,cast(random()*DATEDIFF(day,'2019-01-01','2019-12-31') as int),'2019-01-01'))
         when created_date<'2020-01-01' and  created_date>='2019-01-01' then date(DATEADD(day,cast(random()*DATEDIFF(day,created_date,'2019-12-31') as int),created_date))
         end as random_date 
 from scratchdb.tmp_table1
 order by 1,2
...