У меня есть входная таблица, как показано ниже -
ID Name q1 q2 q3 q4
1 a 2621 2036 1890 2300
2 b 18000 13000 14000 15000
3 c 100 200 300 400
Я хочу ранжировать данные столбцов (q1, q2, q3 and q4
) для каждой строки.Например, если я рассмотрю последнюю строку указанного выше ввода, то в столбце q4
содержится значение 400
, которое выше, чем в других столбцах, поэтому значение столбца q4
будет 1
, значение q3
будет 2
, q2
ранг будет 3
, а q1
ранг будет 4
.
Я ищу вывод, как -
id name q1 q2 q3 q4
1 a 1 3 4 2
2 b 1 4 3 2
3 c 4 3 2 1
Более 100 000 записейприсутствует во входной таблице.
Я создал небольшой SQL-скрипт для входной таблицы, т. е.
declare @temp table (ID int, Name varchar(10), q1 int, q2 int, q3 int, q4 int)
insert into @temp
select 1, 'a', 2621, 2036, 1890, 2300
union all
select 2, 'b', 18000, 13000, 14000, 15000
union all
select 3, 'c', 100, 200, 300, 400
select * from @temp
Пожалуйста, помогите мне найти эффективный способ решения этой проблемы.