суммировать столбец, имя которого получено из значения другого столбца - PullRequest
1 голос
/ 23 октября 2019

Я хочу суммировать один из столбцов, для которого это имя столбца взято из другого значения столбца (Кол.2)

Col.1   Col.2   Q1  Q2  Q3
a   Q1  1   1   4
a   Q1  2   1   1
c   Q1  2   1   2

Кажущаяся прецедентная пробная функция кажется безнадежной

Ответы [ 2 ]

1 голос
/ 23 октября 2019

Просто замените 'Q1' на Q1 и 'Q2' на Q2:

select col1
     , col2
     , sum(case
               when col2 = 'Q1' then Q1,
               when col2 = 'Q2' then Q2
           end) as Total
from tabl
group by col1, col2
1 голос
/ 23 октября 2019

Если я хорошо понимаю, вам может понадобиться:

select Col1, Col2,
        sum(
                case
                    when Col2='Q1' then Q1
                    when Col2='Q2' then Q2
                    else 0
                end
           ) as Total
from yourTable
group by Col1, Col2

Например, с вашими данными выборки:

with yourTable(Col1, Col2, Q1, Q2, Q3) as (
  select 'a',    'Q1',    1,    1,    4 from dual union all
  select 'a',    'Q1',    2,    1,    1 from dual union all
  select 'c',    'Q1',    2,    1,    2 from dual
)
select Col1, Col2,
        sum(
                case
                    when Col2='Q1' then Q1
                    when Col2='Q2' then Q2
                    else 0
                end
           ) as Total
from yourTable
group by Col1, Col2

дает:

COL1 COL2      TOTAL
---- ---- ----------
a    Q1            3
c    Q1            2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...