需要查找每个购买产品的位置数量?

时间:2017-09-21 13:04:36

标签: mysql sql hadoop hive hiveql

我有2个表(客户,交易)。

customer
id  name location
1    samuel AZ
2    mithun  CA
3    Robert  NY
etc..


transaction
id   customer_id  product_id
1     1            12000
2     1             12222
3     3             15000
etc.

有不同的产品和不同的位置

通过这些专栏,我需要找到一个特定产品的购买地点数量?

我尝试使用连接。

我的代码是

select c.id, c.location, t.product_id
from customer c join transaction t
on (c.id = t.cid);

我能够加入两个表,但我需要按tid计算交易数量。

2 个答案:

答案 0 :(得分:0)

尝试对它们进行分组 - 这提供了购买特定产品的位置数量。这将包括位置的重复条目,但将回答您的交易数位

select t.product_id, count(c.location)
from customer c join transaction t
on (c.id = t.cid)
group by 1;

答案 1 :(得分:0)

要查找“每个产品ID的不同位置数”,请根据GROUP BY

使用product_id
 select t.product_id, count(distinct c.location)
 from transaction t
 join customer c on (c.id = t.id)
 group by product_id

distinct中使用count,以避免两次计算同一位置。