2017-03-20 13 views
1

次の表があります。条件に基づいて結果をグループ化するには -

CustomerID Country company email   invoice 
01   USA  A   [email protected] 100 
02   USA  B   [email protected] 150 
03   Canada C   [email protected] 100 
04   Aus  D   [email protected] 150 

私がしたい:電子メールプロバイダーとしてヤフーを使用して、少なくとも2人の顧客を持っている国について

、請求書の合計と一緒にそれらの国を表示します。合計にはyahooを使用する顧客からの請求書のみを含める必要があります。 (国別グループ)

答えて

2

は、単にドメインでメールをフィルタリングし、さらに@yahoo.co.ukなどのような他の類似のドメインを含める場合はカウントは少なくとも2

select country, sum(invoice) sum_of_invoice 
from your_table 
where email like '%@yahoo.com' 
group by country 
having count(*) >= 2; 

であるそれらの国の集約を行い、その後、次のことができますwhere句にemail like '%@yahoo.%'を使用してください。

あなたは、プロバイダとして少なくとも2ヤフーを持っている国のすべての顧客の請求書の合計を取得したい場合:

select country, 
    sum(invoice) sum_of_invoice 
from your_table 
group by country 
having count(case when email like '%@yahoo.com' then 1 end) >= 2; 
+0

はありがとうございました。同じ条件のすべての顧客の請求書の合計を取得したい場合は、少なくとも2人の顧客がyahooを電子メールプロバイダとして使用していることが条件です。どうすればこれを達成できますか? 。 –

+1

@MyurathanKajendran - 答えを更新しました。 2番目のクエリを参照してください – GurV

関連する問題