У меня есть таблица с существующими данными. Для каждого уникального значения в первом столбце этой таблицы у нас есть столбец, который должен находиться в последовательном порядке, но эта таблица вышла из строя. Я хочу запустить инструкцию SQL, которая вернет этот второй столбец. Я был в состоянии видеть результаты, я хочу с этим SQL:Обновить столбец SQL с помощью функции Rank()
select FORMULA_ID, ATTRIB_CODE, ATTRIB_VAL, ATTRIB_ORDER,
rank() over (partition by formula_id order by attrib_code, attrib_val) AS WANT_THIS
from ATTRIB
Что дает:
FORMULA_ID ATTRIB_CODE ATTRIB_VAL ATTRIB_ORDER WANT_THIS
----------- -------------------- ---------------- ------------ ---------
2791 C_BRAND ROMAN HOLIDAY 3 1
2791 C_ENDUSE DINNER 4 2
2791 C_ENDUSE SNACK 6 3
2791 C_ENDUSER 10-17 7 4
2791 C_PRODTYPE SALAD 13 5
2791 C_RELIG ANY 14 6
2821 C_ALLERGEN PEANUT 1 1
2821 C_ALLERGEN SOY 2 2
2821 C_BRAND ROMAN HOLIDAY 1 3
2821 C_ENDUSE DINNER 1 4
Как вы можете видеть, столбец WANT_THIS упорядочивает строки и сбрасывается в 1, когда он попадает к новый FORMULA_ID. Но я не знаю, как преобразовать это в оператор UPDATE, который фактически поместит значение в WANT_THIS в столбец ATTRIB_ORDER. Есть ли способ преобразовать SQL выше в инструкцию UPDATE?