Добавление разных строк в SQL на основе значения столбца в виде новой строки и нового значения столбца - PullRequest
0 голосов
/ 24 августа 2018

Я полностью готов признать, что я поступаю об этом неправильно, но вот ситуация.Мне дали таблицу, подобную этой:

qtr    cust_type      cust_cnt           

QTR1   new_cust       100
QTR1   return_cust    50 
QTR2   new_cust       150  
QTR2   return_cust    75

, и я пытаюсь создать новую строку cust_type для каждого qtr, которая показывает объединенное количество других cust_types, например, в качестве конечного результата:

qtr    cust_type      cust_cnt           

QTR1   new_cust       100
QTR1   return_cust    60 
QTR1   total_cust     160
QTR2   new_cust       150  
QTR2   return_cust    75
QTR2   total_cust     225

С какой стати я это сделал?Причина не велика - Tableau очень требователен к тому, как вводится информация для формирования определенных типов графиков.

Есть ли синтаксис SQL, который может выполнить второй граф?Я не могу понять это.Я также очень плохо знаком с SQL: D

Ответы [ 2 ]

0 голосов
/ 25 августа 2018

Я столкнулся с тем же, когда визуализировал данные в Таблице. Он поддерживает итоги, если вы представляете данные в сетке, но иногда нам нужно показать итоги в выпадающем списке. К сожалению, Redshift не поддерживает куб или сведение. Я использовал то же самое, что предложил Лукаш.

0 голосов
/ 24 августа 2018

Вы можете использовать:

SELECT qtr, cust_type, cust_cnt   
FROM tab
UNION ALL
SELECT qtr, 'total_cust' AS cust_type, SUM(cust_cnt) AS cust_cnt
FROM tab
GROUP BY qtr
ORDER BY qtr, cust_cnt;
...