私は次のSQLを使用しています(2つの同様のクエリへのユニオンを使用):
SELECT
distinct a.source,
a.p_id,
a.name,
b.prod_count,
b.prod_amt,
'Def' as prod_type
FROM
dwh.attribution_product_count a
LEFT OUTER JOIN
(
SELECT
distinct source,
p_id,
name,
sum(acct_count) as prod_count,
sum(acct_amt) as prod_amt
FROM
dwh.prod_count
WHERE
month = 3 AND
default_banner_flag = 0 AND
loan_flag = 3
GROUP BY
source,
name,
p_id ) as b
ON
a.p_id = b.p_id
UNION
SELECT
distinct a.source,
a.p_id,
a.name,
b.prod_count,
b.prod_amt,
'Other' as prod_type
FROM
dwh.attribution_product_count a
LEFT OUTER JOIN
(
SELECT
distinct source,
p_id,
name,
sum(acct_count) as prod_count,
sum(acct_amt) as prod_amt
FROM
dwh.prod_count
WHERE
month = 3 AND
default_banner_flag = 1 AND
loan_flag = 3
GROUP BY
source,
name,
p_id
ORDER BY
name ) as b
ON
a.p_id = b.p_id
私が得ている出力は次のようになります。
基本的に、FakeName #2 には実際の数値 (null ではない) を示す行が 1 つあるため、FakeName #2 のみを表示する必要があります。これは、FakeName #2 の null 行も必要であることを意味します。しかし、FakeName #1 と #3 には 2 つの null 行があるため、表示する必要はありません。これを実行できる SQL コマンド (またはクエリの編集) の種類は何ですか?