У меня есть процесс, который берет группу строк и обновляет столбец в зависимости от того, находится ли он в верхних 50% строк, в средних 20% строк или в нижних 30% строк.
Я сделал это с помощью процента выбора, как показано ниже
update sourcetable
set targetcolumn = a.outputdata
from (
select top 50 percent uniqueid, outputdata
from sourcetable a
join Lookupstable b on a.grouptype = b.grouptype and and datacontent =
'topbracket'
where targetcolumn is null
order by ranking desc
) a
join sourcetable b on a.uniqueid = b.uniqueid
Затем я дублирую соответственно для среднего и нижнего выбора.Тем не менее, мне сказали, что эти скобки могут измениться в будущем, поэтому было бы неплохо иметь проценты в моей таблице поиска, и мне нужно только касаться этой таблицы, когда я изменяю детали выходного столбца или скобки.
Я попытался объявить переменную для имитации ссылки на количество скобок, как показано ниже
declare @top int
set @top = 50 --this would be a query to look for the relevant bracket figure
select top @top percent *
from Sourcetable
Это не работает.Кто-нибудь знает альтернативный способ динамического выбора моего процента строк из поиска в другой таблице?