Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Посоветуйте как правильно сгруппировать записи.  [new]
Трость
Guest
Добрый день.

Не силён в языке SQL, поэтому сильно не пинайте.

Запрос выдаёт 50тыс. записей, первое поле номер телефона, второе текст сообщения.
Текст сообщения разный в каждой записи, а вот номер телефона повторяется. Надо сгруппировать так чтоб номер телефона был уникальным, а текст сообщения был по первому номеру телефона (хотя это неважно, может быть и последним)

вот накидал запрос
select
  test.message,
  test.phone 
from
  test 
group by 
  test.message, test.phone

Ессно в этом случае есть дубликаты, вопрос в этом и заключается как их исключить по номеру телефона?
16 янв 15, 13:37    [17127440]     Ответить | Цитировать Сообщить модератору
 Re: Посоветуйте как правильно сгруппировать записи.  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
Трость,

пронумеровать записи отдельно по каждому номеру телефона,
отобрать только с номером 1.
16 янв 15, 13:39    [17127455]     Ответить | Цитировать Сообщить модератору
 Re: Посоветуйте как правильно сгруппировать записи.  [new]
Konst_One
Member

Откуда:
Сообщений: 11621
select  MIN(message) as message,  phone from  test group by phone
16 янв 15, 13:41    [17127474]     Ответить | Цитировать Сообщить модератору
 Re: Посоветуйте как правильно сгруппировать записи.  [new]
Трость
Guest
Konst_One
select  MIN(message) as message,  phone from  test group by phone


Видимо ещё плохо понимаю sql, спасибо, посмотрю
16 янв 15, 13:50    [17127562]     Ответить | Цитировать Сообщить модератору
 Re: Посоветуйте как правильно сгруппировать записи.  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
SELECT TOP(1) WITH TIES *
FROM test
ORDER BY ROW_NUMBER()OVER(PARTITION BY phone ORDER BY (SELECT 0));
16 янв 15, 15:29    [17128466]     Ответить | Цитировать Сообщить модератору
 Re: Посоветуйте как правильно сгруппировать записи.  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
Трость
Видимо ещё плохо понимаю sql, спасибо, посмотрю

iap
SELECT TOP(1) WITH TIES *
FROM test
ORDER BY ROW_NUMBER()OVER(PARTITION BY phone ORDER BY (SELECT 0));
16 янв 15, 15:31    [17128492]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить