如何按ID建立汇总的DISTINCT计数表-SQL

时间:2018-10-11 19:51:14

标签: sql

我正在尝试建立“转销商的产品渗透率表”

我有三个表,分别是转销商,产品1和产品2。

表1:

ResellerID
001
002
003

表2 --------------------------------------------表3

Customer#  -  Prod#  - ResellerID  |  Customer#  -  Prod#  - ResellerID
ABC        -  1-2    - 001         |     GHI        -  9-8    - 001
DEF        -  3-4    - 002         |     JKL        -  9-8    - 002
ABC        -  3-4    - 001         |     MNO        -  7-6    - 003

我需要茶几的结果如下:

ResellerID(PK)  -  (Unique)CountofCustomer  - (Unique)CountofProduct
001             -        2                  -      3
002             -        2                  -      2
003             -        1                  -      1

我将基本表构建为作为1个客户表的参考,并构建了Final表,但是我无法弄清楚如何通过转销商获取唯一计数并将其重新插入适当的行中(之后,数学将使我获得渗透力。

对此将提供任何帮助。

谢谢

1 个答案:

答案 0 :(得分:1)

我建议使用union allgroup by

select ResellerID, count(distinct Customer), count(distinct prod)
from ((select Customer, Prod, ResellerID from table2
      ) union all
      (select Customer, Prod, ResellerID from table3
      )
     ) t
group by ResellerID;