У меня есть следующий код, который требует много времени для выполнения.Что мне нужно сделать, это выбрать столбец с номером строки, равным 1, после разбиения его на три столбца (col_1, col_2, col_3) [которые также являются ключевыми столбцами] и упорядочение по некоторым столбцам, как указано ниже.Количество записей в таблице составляет около 90 миллионов.Я придерживаюсь лучшего подхода или есть другой лучший?
with cte as (SELECT
b.*
,ROW_NUMBER() OVER ( PARTITION BY col_1,col_2,col_3
ORDER BY new_col DESC, new_col_2 DESC, new_col_3 DESC ) AS ROW_NUMBER
FROM (
SELECT
*
,CASE
WHEN update_col = ' ' THEN new_update_col
ELSE update_col
END AS new_col_1
FROM schema_name.table_name
) b
)
select top 10 * from cte WHERE ROW_NUMBER=1