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

cpjpxq1n  于 2021-06-02  发布在  Hadoop
关注(0)|答案(2)|浏览(318)

我有两张table(客户,交易)。

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计算事务数。

s3fp2yjn

s3fp2yjn1#

只需使用 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` 以避免两次计算同一位置。
0x6upsns

0x6upsns2#

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

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

相关问题