select t.col1 a, t.col1+...+t.coln-1 b, t.col1+...+t.coln-1+t.coln c
from table
Может ли прямое использование b+t.col3
?SQL: Как сумма каждого столбца в оракуле?
я могу думать:
with t1 as (select col1+...+coln-1 b from table)
select t2.col1 a, t1.b, t1.b+t2.coln c
from table t2
inner join t1 on t1.id=t2.id
Есть еще один способ сделать это.
А? Почему вы ищете другой способ? Это какой-то вопрос интервью или есть реальная причина искать другой способ? – sstan
Ваш второй способ будет работать, но он будет очень неэффективным, так как он дважды сканирует таблицу и требует соединения. Вы ищете способы сделать это еще хуже? Напишите его в цикле в процедуре, поэтому каждая строка обрабатывается по одному. Вы хотите сделать его более эффективным? Используйте первый способ, который вы показали, который является наиболее эффективным - он только сканирует таблицу один раз, и нет объединений. – mathguy
Это так, когда-то слишком длинный b (более 100 символов), мне нужно позвонить, когда нужно написать еще одно время. Читайте инструкцию SQL, которую трудно прочитать. – zhanzezhu