Таблицы SQL представляют неупорядоченные наборы - и это также верно для наборов результатов, если только они не имеют ORDER BY
для самых внешних SELECT
.
Нет "ячейка над ней "или предыдущая строка , если не указан критерий заказа.Если вы это сделаете, то LAG()
сделает то, что вы хотите:
select t.*,
(case when column1 = lag(column1) over (order by . . . )
then 'same'
end) as column2
from t
order by . . .;
. . .
для критерия порядка.Оно должно быть одинаковым в обоих местах.