2015-05-16 2 views
-2

IT-менеджер Chinook заинтересован в том, чтобы узнать, с какими поставщиками электронной почты их клиентами являются . Напишите один оператор SQL для создания списка с двумя столбцами с именем Email Поставщик и количество клиентов. Поставщик электронной почты должен отображаться во всех верхних регистрах (например, GMAIL, YAHOO), и такую ​​информацию можно получить с адреса электронной почты клиентов. Адреса электронной почты одного и того же провайдера с разными кодами стран (например, yahoo.com, yahoo.de, yahoo.ca) должны рассматриваться как один поставщик электронной почты. Сортируйте результат запроса сначала по номеру Клиентам в порядке убывания, а затем по электронной почте Поставщику в извещении.Как ответить на этот жесткий sql?

То, что я пробовал:

SELECT 
     Substr(email, Instr(Email), "@")+1, 
     25-Instra(Substr(Substr(Email, "@")," "),".") AS "Email Provider", 
     COUNT(*) AS "No of Customers" 
    FROM 
     Customer 
    GROUP BY 
     UPPER(substr(Email,Instr(Email, "@")+2,Length(Substr(Substr(Email, "@"),".")".")); 
+4

Это пахнет как домашнее задание. Покажите нам, что вы пробовали, по крайней мере. И какой диалект SQL вы используете. – GHC

+0

SELECT Substr (адрес электронной почты, Instr (электронная почта), «@») + 1,25-Instra (Substr (Substr (адрес электронной почты, «@»), «»), «.») AS «Поставщик электронной почты», COUNT (*) AS «Нет клиентов» ОТ Заказчика ГРУППА ВЕРХНИМ (substr (Электронная почта, Instr (электронная почта, «@») + 2, Длина (Substr (Substr (Email, «@»), «.») ». ")); –

+0

@SQLHelp сделал ли я мой ответ? – Sachu

ответ

0
select substr(email 
       , instr(email, '@')+1 
       , instr(email, '.') - instr(email, '@')-1 
       ) AS "Email Provider" 
    COUNT(*) AS "No of Customers" 
    FROM 
     Customer 
    GROUP BY substr(email 
       , instr(email, '@')+1 
       , instr(email, '.') - instr(email, '@')-1 
       ) 

Надеется, что это помогает ..

Смежные вопросы