我正在努力寻找购买了brand1和品牌2的客户,以及花费的美元总价值。我制作了一个包含所有细节的样本数据库。我可以得到购买两个品牌的顾客,但美元金额应该等于在品牌1和品牌2中花费的金额之和。
这是到示例数据库的链接:
发布于 2019-03-19 19:50:19
如果我正确理解,您只需在适当的having子句中使用聚合:
select individual_id, sum(dollar_value_us)
from transaction_detail_mv
group by individual_id
having sum( case when brand_org_code = 'BRAND1' then 1 else 0 end) > 0 and
sum( case when brand_org_code = 'BRAND2' then 1 else 0 end) > 0 发布于 2019-03-19 19:32:32
使用相关子查询
select individual_id, SUM (dollar_value_US) from
transaction_detail_mv t1
where t1.brand_org_code IN ('BRAND1','BRAND2')
AND EXISTS (SELECT 1
FROM TRANSACTION_DETAIL_MV t2 WHERE t1.individual_id=t2.individual_id
and BRAND_ORG_CODE = 'BRAND2')
GROUP BY
individual_id
INDIVIDUAL_ID SUM(DOLLAR_VALUE_US)
1 40
2 22
5 22https://stackoverflow.com/questions/55248615
复制相似问题