У меня есть таблица данных, как показано ниже, и я хочу обновить флаг столбца в соответствии с приведенным ниже условием.
declare @tbl table (id int identity ,supergroup int ,subgroup int , flag char(1) )
Цель состоит в том, чтобы получить 40 лучших записей в целом по супергруппе и подгруппе, например 40 / count (отдельная подгруппа), где supergroup = @subgroup, до 40 записей.Предположим, что есть 3 супергруппы, и если для супергруппы 1000 есть 3 отличных подгруппы, тогда извлекают 40/3 = 13 записей, и для следующей супергруппы 2000 снова есть 3 отличных подгруппы, тогда выбирают 13 записей из этого, для следующей супергруппы 3000, если есть снова 3тогда подгруппа 40/3 = 13 логика будет суммировать только 39, поэтому мне нужно 14 из последней супергруппы.
в любом сценарии, мне нужно точно 40 записей.