Sql 试图找到购买brand1和brand2的客户及其总销售额

Sql 试图找到购买brand1和brand2的客户及其总销售额,sql,oracle,oracle-sqldeveloper,Sql,Oracle,Oracle Sqldeveloper,我试图找到购买了brand1和Brand2的客户,以及花费的美元价值的总和。我做了一个样本数据库,里面有所有的细节。 我可以找到购买了这两个品牌的客户,但金额应等于品牌1和品牌2的花费金额之和 这是指向示例数据库的链接: 使用相关子查询 select individual_id, SUM (dollar_value_US) from transaction_detail_mv t1 where t1.brand_org_code IN ('BRAND1','BRAND2') AND

我试图找到购买了brand1和Brand2的客户,以及花费的美元价值的总和。我做了一个样本数据库,里面有所有的细节。 我可以找到购买了这两个品牌的客户,但金额应等于品牌1和品牌2的花费金额之和

这是指向示例数据库的链接:


使用相关子查询

    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                22

使用相关子查询

    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                22

如果我理解正确,您可以将聚合与适当的
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 

如果我理解正确,您可以将聚合与适当的
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 

客户id 1的总和应为40。需要客户同时购买品牌1和品牌2的合计2@SomiyaL现在检查总和是否为40是的,但我正在尝试添加txn_日期。对于客户id 1,总和应为40。需要客户同时购买品牌1和品牌2的合计2@SomiyaL现在检查总和是40是的,但我正在尝试添加txn_日期,我也在尝试获取行项目级别的实际数据。所以我想得到一个查询,它不会聚合,而是显示客户的详细信息、数量、txn_日期、总计(美元价值)@SomiyaL。你的问题是“我试图找到购买了品牌1和品牌2的客户,以及花费的美元价值的总和。”标题中重复了这一点。当你问问题的时候,你应该很清楚。我也在尝试获取行项目级别的实际数据。所以我想得到一个查询,它不会聚合,而是显示客户的详细信息、数量、txn_日期、总计(美元价值)@SomiyaL。你的问题是“我试图找到购买了品牌1和品牌2的客户,以及花费的美元价值的总和。”标题中重复了这一点。当你问问题时,你应该清楚。