SQL, сгруппировать по одному столбцу с одним отдельным столбцом - PullRequest
0 голосов
/ 11 февраля 2019

У меня есть таблица со следующей структурой

id  phone_number  message    schedule_id
1 | 1212121212  | aaaaa |    12
2 | 2323232323  | bbbbb |    12
3 | 1212121212  | ccccc |    12
4 | 1212121212  | ddddd |    13

Я хочу получить строку с тем же номером телефона и другим значением schedule_id. Я использую следующий запрос для получения строк с тем же номером телефона

select * from message group by to_number having count(*)>1;

Но он также группирует строки с другим schedule_id

Кто-нибудь может мне помочь написать запрос?

Ответы [ 3 ]

0 голосов
/ 11 февраля 2019

Это то, что вы ожидаете?

select distinct phone_number, schedule_id from message;
0 голосов
/ 11 февраля 2019

Вы должны использовать соединение для подвыбора с группой счетчиков по номеру телефона

  select m.* 
  from  message m
  inner join (
        select phone_number
        from message 
        group by phone_number
        having count(*)>1;

  ) t on t.phone_number  = m.phone_number
0 голосов
/ 11 февраля 2019

Вы можете использовать EXISTS:

select m.*
from message m
where exists (select 1 from message m1 where m1.to_number = m.to_number and m1.id <> m.id);

Вы также можете использовать GROUP BY, просто включите также этот столбец:

select to_number, schedule_id 
from message 
group by to_number, schedule_id 
having count(*) > 1;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...