2013-09-30 60 views
1

我有一張表,其中包含客戶和服務的銷售額。我需要獲得有多項服務的客戶摘要,但至少有一項服務符合給定標準。如何獲得不同值的計數,其中一個等於請求

到目前爲止,我有

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

當我介紹具體的服務,我失去了不同的服務結果。我想我需要在select中使用select,但似乎是在圈選。

感謝

+0

您可以使用表設置SQLFiddle嗎? –

回答

0

要得到誰使用特定服務的所有服務使用客戶摘要:

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

可以使用子查詢來實現。你沒有給我們表格創建語句,所以我在這裏猜測一下。

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' 
相關問題