Мой код генерирует уникальный идентификатор для каждой строки (8 миллионов строк данных). Если я положу ORDER BY
внутри CREATE VIEW AS...
, будет ли порядок строк одинаковым?
Ожидаемый результат будет всегда иметь одинаковое ID
независимо от того, кто и когда выполняет представление. Я читал, что ORDER BY
оператор внутреннего представления не гарантирует сортировку по умолчанию c, а использование ORDER BY
вне представления позволит ему работать.
Снежинка dwh работает по-другому? Из того, что я вижу в плане выполнения, это кажется прямым: звездочки из нижнего вложенного запроса и движущиеся вверх при выполнении операций)
Может, вместо представления мне нужно просто go с таблицей?
--sample data
create or replace table determin_sort as (
select uuid,position,val1,val2
from values ('u98rutu', 66788, 1, 3),
('u999etd', 66788, 2,3),
('voko225', 66788, 2,3),
('pp29ccd', 229, 20, 30),
('aa55jmw', 229, 2, 3),
('1ojcugi7', 8994, 2, 30),
('2yrhbf',8994,20,3)
v(uuid,position,val1,val2)
);
--view
create or replace view v_determin_sort as
SELECT 'L'||row_number() over (order by position) as LID
uuid,
position,
val1,
val2 FROM (SELECT
row_number() over (partition by position order by uuid) as rn, *
FROM determin_sort
QUALIFY row_number() over (partition by position order by uuid) = 1
ORDER BY UUID);
--query the view
SELECT * FROM v_determin_sort ORDER BY LID;