У меня есть таблица, из которой я загружаю поля и называю их по новому, по одному полю я делаю сумму, но в данном случае group by не срабатывает, так как вылезает ошибка - не знает как группировать остальные поля(not a group by expression), включить эти поля в group by я не могу, так как их ещё нет в таблице
Попробовав partition by все считается нормально, но мне нужна именно склейка строк как в груп бай
Есть ли какой то способ убрать лишние строки в партишн или настроить груп бай с новыми столбцами (создавать дополнительную таблицу не вариант)?
Пронумеруйте Rank-ом или dense_rank c таким же partition с сортировкой rownum и отрежьте лишнее оберткой:
select * from (...) where rnk = 1
PS: Лучше обходиться без оконных функций, если есть решение более классическое. Окошки заставляют обходить выборку заново и ухудшают план выполнения запроса.
Получилось отрезать при помощи данного поля: row_number over(partition by (...) order by(...))
Хотя такой эффект должна была дать функция rank, но в моем случае почему-то не помогла
По поводу оконных функций возьму на заметку, спасибо