2016-03-21 11 views
0

У меня есть набор данных для вызова клиентов, я хочу, чтобы count() узнал: Общее количество вызовов для каждого клиента Общая продолжительность разговора для каждого клиента Всего мест клиент он где всделать много count() в одном запросе

в этом мои данные:

Phone no. - Duration In minutes - Location 

1111   3      88 
2222   4      33 
3333   4      4 
1111   7      55 
3333   9      4 
3333   7      3 

результат запроса:

phone no- Total number of records -Total duration of calls- Total of location 

1111    2       10     2 
2222    1       4     1 
3333    3       20     2 
+0

группу по, граф, сумма и т.д. – jarlh

+3

Это, кажется, как основной 'группы by' запроса. В чем проблема? –

+0

Спасибо, что помогли ... –

ответ

0

Это почти похоже на fthiella ответ. Попробуйте, как это

select PhoneNo, 
count(*) as TotalNumberOfRecords, 
sum(DurationInMinutes) as TotalDurationOfCalls, 
count(distinct location) as TotalOfLocations from yourtablename 
group by PhoneNo 
0

Вы можете использовать GROUP BY запроса с основными агрегированными функциями, как COUNT(), SUM() и COUNT (DISTINCT), как это:

select phone_no, count(*), sum(duration), count(distinct location) 
from tablename 
group by phone_no 
0

ответ на ваш вопрос

select Phone no,count(Duration In minutes),sum(Duration In minutes),count(distinct Location) from Tablename group by Phone no order by Phone no; 
0

Я сделал временную таблицу для тестирования, и это дает тот же результат, как вы упоминаете. смотрите следующий запрос:

declare @TEMP table (phone_no int, duration int, location int) 
insert into @temp values(1111,3,88),(2222,4,33),(3333,4,4),(1111,7,55),(3333,9,4),(3333,7,3) 

select phone_no, count(*), sum(duration), count(distinct location) 
from @TEMP 
group by phone_no 

вы можете просто рассмотреть этот вопрос:

select phone_no, count(*), sum(duration), count(distinct location) 
from @TEMP 
group by phone_no 
Смежные вопросы