Я создаю сценарий U-SQL с несколькими промежуточными таблицами. Я хотел бы назначить ROW_NUMBER() на основе порядка одного из столбцов, но не могу понять, как это сделать.
@t = SELECT *
FROM(
VALUES
( 1, "2010-01-01","TagName1", 30 ),
( 2, "2010-01-01","TagName2", 5 ),
( 2, "2010-01-02","TagName2", 7 ),
( 2, "2010-01-02","TagName3", 6 ),
( 3, "2010-01-03","TagName2", 15 ),
( 1, "2010-01-01","TagName2", 2 ),
( 1, "2010-01-01","TagName3", 1),
( 3, "2010-01-04","TagName1", 2 ),
( 3, "2010-01-04","TagName2", 4 )
) AS T(DeviceID, Date, TagName, dv);
@t2 = SELECT DISTINCT(dv) as dv
, ROW_NUMBER() OVER() as LevelNumber
FROM @t
ORDER BY dv;
Если я запускаю приведенный выше код, он говорит мне переместить ORDER BY
в оператор OUTPUT
, но тогда это не работает, когда содержимое таблицы изменяется в последующих манипуляциях.
Я попытался поместить имя столбца в часть OVER()
, но это тоже не работает.
Я хотел бы что-то вроде этого:
dv LevelNumber
1 1
2 2
4 3
5 4
Какие-либо предложения?