Заполните случайные записи априорным известным распределением в DB2 / SQL - PullRequest
0 голосов
/ 29 марта 2012

Чтобы упростить задачу, вот история: мне нужно создать тестовые данные, скажем, для названий стран.У меня есть простая таблица, подобная этой:

create table countries(name varchar(16), percentage float);

, заполненная тремя странами

insert into countries values
('USA',0.5),
('England',0.3),
('Germany',0.2);

Обратите внимание, что процентные суммы составляют до 100%.хотите, чтобы эта таблица использовалась для создания таблицы данных REAL, скажем, 1000 записей, которая имеет один столбец (имя), а значения распределяются в соответствии с таблицей стран (США 50% - 500 записей, Англия 30% -300 записей и Германия 20% - 200 записей).

Я знаю, что это можно сделать с помощью статистики дел, но я предпочитаю найти решение, где SQL стабилен и я могу изменить только таблицу стран (напримердобавление стран и т. д.)

Моя среда - DB2 9.5

1 Ответ

0 голосов
/ 30 января 2019

Если вы думаете о небольших числах, таких как 1000 строк, будет быстрее, если вы подготовите и проверите числа в электронной таблице. С другой стороны, хранение столбца данных, который должен добавить 1, имеет несколько проблем: Как вы собираетесь управлять обновлением в одной строке, чтобы сумма столбца была равна 1? Лучше сохранить исходные цифры (скажем, численность населения, валовой внутренний продукт и т. Д.) И рассчитать процент во время отчетности или консультации, поэтому при изменении числа для конкретной страны вам не придется делать сложные корректировки и приложение все равно сможет отображать их соответствующим образом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...