2013-09-30 2 views
1

고객 및 서비스 별 판매 테이블이 있습니다. 몇 가지 서비스를 보유한 고객에 대한 요약을 가져올 필요가 있지만 주어진 기준을 충족하는 서비스가 하나 이상있는 경우 나는 특정 서비스를 소개 나는 별개의 서비스 결과를 잃을 때그 중 하나가 같을 때 고유 값 수를 얻는 방법

은 지금까지 나는

SELECT Account, Count(DISTINCT Service), bill 
FROM jobs_by_service 
GROUP GY bill 
ORDER BY Count(DISTINCT Service) DESC, Account 

있습니다. select 내에서 select를 사용해야하지만 서클에있는 것처럼 보입니다.

SELECT Account, Count(DISTINCT Service), bill 
FROM jobs_by_service 
WHERE customer_id in (
    SELECT customer_id 
    FROM jobs_by_service 
    WHERE Service = ?) 
Group By Account, bill 
Order by Count(DISTINCT Service) DESC, Account 
+0

테이블로 SQLFiddle을 설정할 수 있습니까? –

답변

0

는 특정 서비스를 사용하는 모든 서비스 사용 고객의 요약을 얻으려면. 당신은 우리에게 테이블 생성 문장을주지 않았기 때문에 여기서 약간 추측하고 있습니다.

Select account, Count(DISTINCT Service) as d_count 
FROM jobs_by_service Group By account 

이것은 개별 서비스의 계정 및 번호를 알려줍니다. 당신이 참조 할 수있는 하위 쿼리로 바꾸십시오.

Select a.account , b.d_count 
from jobs_by_service a 
inner join (Select account, Count(DISTINCT Service) as d_count 
       FROM jobs_by_service Group By account) b 
    on b.account = a.account 
where criteria1 = 'hi' or criteria2 = 'bye' or criteria1 = 'ok' 
0

이 하위 쿼리로 수행 할 수 있습니다

감사

관련 문제