SQL SELECT Процент строк на основе значений столбцов - PullRequest
1 голос
/ 04 июня 2019

Я хочу вернуть 15% строк на основе значений столбцов.Например, у меня есть столбец гражданства и пол, а также имя электронной почты и т. Д.Я хочу вернуть 15% каждого сценария в этих столбцах.Если гражданство = США, я бы хотел, чтобы 15% от общего количества строк с США и мужчинами, еще 15% от США и женщины и еще 15% от США и неизвестно.То же самое относится к каждому другому гражданству в моем результате (например, в китайском, канадском и т. Д.)

Я могу получить 15% всех строк, но не на основе значений столбцов.Очень урезанный запрос выглядит примерно так:

SELECT TOP 15 PERCENT FROM (
SELECT name
    , email
    , citizenship
    , gender
FROM bio) a

1 Ответ

1 голос
/ 04 июня 2019

Вы хотите стратифицированный образец. Вы можете сделать это используя:

select top 15 percent b.*
from bio b
order by row_number() over (partition by citizenship, gender order by (select null));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...