Я не очень знаком с sql. Я использую postgres для базы данных. Я получил результат от следующего sql. У меня есть несколько столбцов, но я упростил таблицу и запрос для этого вопроса.
select sum(column1), sum(column2), sum(column3), sum(column4), substring(product, 0, POSITION('-' in product)) as product_code
from table group by product_code order by product_code
column1, column2, column3, column4, code
10 3 0 2 ABC1
11 4 0 4 ABC2
12 2 0 3 ABC3
13 1 0 6 ABC4
Как мне исправить sql сверху, чтобы получить следующий результат, как показано ниже?
column1, column2, column3, column4, code
10 3 0 0 ABC1
10 0 0 2 ABC1
11 4 0 0 ABC2
11 0 0 4 ABC2
12 2 0 0 ABC3
12 0 0 3 ABC3
13 1 0 0 ABC4
13 0 0 6 ABC4
Если я использую этот запрос с ключевым словом union, я могу получить желаемый результат (как указано выше), но мне интересно, есть ли лучший способ сделать это.
select sum(column1), sum(column2), sum(column3), sum(column4), substring(product, 0, POSITION('-' in product)) as product_code
from table group by product_code union select sum(column1), sum(column2), sum(column3), sum(column4), substring(product, 0, POSITION('-' in product)) as product_code
from table group by product_code