У меня есть t-sql
процедура, которая генерирует тестовые данные, и как часть этого, несколько столбцов должны быть случайным образом установлены в набор значений после предопределенного распределения.В настоящее время у меня есть метод для этого с использованием столбца идентификаторов и оператора остатка%, но мне было интересно, существует ли более элегантный способ разработки решения этой проблемы, который позволил бы мне параметризовать значения и распределение, которые назначены столбцам.
Например,
Я хочу присвоить Column A
одно из трех значений {Horse, Donkey, Pony}
и column B
одно из двух значений {Big, Small}
.В этом случае я хочу, чтобы распределения были равны, {Horse:1/3, Donkey 1/3, Pony, 1/3}, {Big:1/2, Small:1/2}
, но распределение Column B's
должно зависеть от Column A
(т.е. 1/2 Пони должно быть большим)
Record | ColumnA | ColumnB | OtherData
1 | Horse | Big |...
2 | Horse | Small |...
3 | Donkey | Big |...
4 | Donkey | Small |...
5 | Pony | Big |...
6 | Pony | Small |...
Я бы предпочелиметь полуслучайное распределение столбцов A и B по номерам записей, но это не является обязательным.
В случае, когда распределение не совсем возможно, всем оставшимся записям должно быть присвоено одно из возможных значений,Предполагается, что в больших наборах данных это будет работать само.