Я не могу помочь с SQL, но основная идея проста.Вам нужно пересечь категории занятости по профессиям, с желаемым процентом на полях.Затем заполните таблицу, умножив проценты строк и столбцов:
employed | unemployed
-------- | -----------
Lawyer | 16% | 4% | 20%
Doctor | 8% | 2% | 10%
Engineer | 40% | 10% | 50%
Accountant | 16% | 4% | 20%
-------- -----------
80% 20%
Записи в таблице показывают, какой процент от каждой скрещенной категории вы хотите в своем образце.Поскольку вы хотите, чтобы общий размер выборки составлял 100, умножьте каждый процент на 100, чтобы получить желаемый размер выборки.Учитывая ваши заявленные пропорции, вам нужно 16 нанятых юристов, 4 безработных юриста, 8 нанятых врачей и т. Д.
Разделите ваши данные на подмножества, соответствующие 8 категориям, и случайным образом выберите соответствующее число из каждого подмножества.Я не знаю, предоставляет ли SQL возможность случайного тасования, но если это так, то это простой способ выбрать образец без замены.Перемешайте нанятых юристов и возьмите первые 16, перемешайте безработных адвокатов и возьмите первые 4 и так далее.Обратите внимание, что это предполагает, что в каждой категории достаточно элементов, чтобы предоставить выборку нужного размера.