У меня есть рекламодатель и channel_group столбцы. Мой код ниже, и вывод там тоже. Я хочу, чтобы мой вывод содержал ВСЕ группы каналов (например, AJ, даже если для него нет значения) Как я могу выполнить sh это? Любые советы, потому что я понятия не имею.
(SELECT
advertiser,
channel_group,
ROUND ( sum(cost) ) AS cost
FROM student_37.data_table
JOIN student_37.dict
ON student_37.data_table.audiocode = student_37.dict.audiocode
JOIN student_37.channel_group
ON student_37.data_table.medium = student_37.channel_group.channel
GROUP BY advertiser,channel_group
ORDER BY advertiser)
SELECT
advertiser,
channel_group,
cost,
ROUND (cost::decimal/SUM(cost) OVER(PARTITION BY advertiser),2) AS sos_adv ,
ROUND (cost::decimal/SUM(cost) OVER(PARTITION BY channel_group),2) AS sos_channel_group ,
ROUND(cost / ( SELECT sum(cost) FROM sos),2) AS sos
FROM sos
ORDER BY advertiser,
array_position(ARRAY['TVP1','TVP2','TVP tem','TVN','TVN tem','Polsat','Polsat tem','unknown'],channel_group);
"company1";"B";"TV";16537
"company1";"C";"TV";20406
"company1";"D";"TV";33380
"company1";"E";"TV";193633
"company1";"F";"TV";14957
"company1";"G";"TV";5338
"company2";"A";"TV";46580
"company2";"B";"TV";56223
"company2";"G";"TV";80735
"company2";"H";"TV";80874
"company2";"J";"TV";38511
Я хочу получить что-то подобное, у меня нет записей, поэтому мне нужно их сгенерировать?
"company1";"A";"TV";
"company1";"B";"TV";16537
"company1";"C";"TV";20406
"company1";"D";"TV";33380
"company1";"E";"TV";193633
"company1";"F";"TV";14957
"company1";"G";"TV";5338
"company1";"I";"TV";
"company1";"J";"TV";
"company2";"A";"TV";46580
"company2";"B";"TV";56223
"company2";"C";"TV";
"company2";"D";"TV";
"company2";"E";"TV";
"company2";"F";"TV";
"company2";"G";"TV";56223
"company2";"H";"TV";80874
"company2";"I";"TV";
"company2";"J";"TV";38511