2017-09-21 5 views
0

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에 의해 트랜잭션의 수를 계산해야합니다.

답변

0

그룹화를 시도하십시오 - 특정 제품을 구매 한 위치의 수를 제공합니다. 이 뜻은 위치에 대한 중복 된 항목을 포함하지만 거래의 전화 번호를 찾으려면

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

비트 "제품 ID 당 서로 다른 위치의 번호"응답 할 것이다 단순히 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에 따라 GROUP BY 사용 count에서 동일한 위치를 두 번 계산하는 것을 피하십시오.