В PostgreSQL возвращается более одной строки

avatar
Handri Mauludin Maulana
9 августа 2021 в 05:36
47
0
0

Здравствуйте, у меня есть код Postgresql, который возвращает несколько значений в подзапросе, следующем ниже. что я хочу вернуть год, месяц, регион, имя, общий доход (у этого есть условное где) и общий объем продаж (у этого есть условное где, которое имеет другое условное с общим поступлением). Конечно, моя логика неверна. но кто-нибудь поможет мне решить это дело?

select 
    distinct 
        x.year_s_date Tahun, 
        x.month_s_date Bulan, 
        y.regionalname Region, 
        y.namarm nama_rm,
        (select 
            distinct sum(s_totalfinancing) incoming
            from staging.main_eform_kpm_final a
            inner join (
                select * 
                from landing.confins_dwh_rmkmb 
                where enddate > '2020-01-01'
            ) b on a.branch_code = b.branchid
           where a.db_source is not null
           group by a.year_s_date, a.month_s_date, b.regionalname, b.namarm
        ),
        (
            select distinct sum(s_totalfinancing) sales
            from staging.main_eform_kpm_final a
            inner join (
                select * 
                from landing.confins_dwh_rmkmb 
                where enddate > '2020-01-01'
            ) b on a.branch_code = b.branchid
            where a.db_source is not null and a.db_source_2 is not null and lineage ='1'
            group by a.year_s_date, a.month_s_date, b.regionalname, b.namarm
        )
    from staging.main_eform_kpm_final x
    inner join (
        select * 
        from landing.confins_dwh_rmkmb 
        where enddate > '2020-01-01'
    ) y on x.branch_code = y.branchid
Источник
Jeremy Thompson
9 августа 2021 в 05:39
0

Используйте limit 1 в своем подзапросе

Handri Mauludin Maulana
9 августа 2021 в 05:48
0

это не помогает, потому что 1-й подзапрос и 2-й подзапрос отличаются только тем, где условно, если использовать ограничение 1, которое возвращает только одно значение. Я проверил, что для каждого подзапроса он возвращает разное количество

Rahul Biswas
9 августа 2021 в 08:24
0

Привет @HandriMauludinMaulana, лучше, если вы предоставите структуру таблицы с примерами данных и ожидаемым результатом. Несколько взаимосвязанных подзапросов могут снизить производительность.

Ответы (0)