我有一个表,结构如下
id phone_number message schedule_id
1 | 1212121212 | aaaaa | 12
2 | 2323232323 | bbbbb | 12
3 | 1212121212 | ccccc | 12
4 | 1212121212 | ddddd | 13
我想要获取具有相同phone_number和不同schedule_id的行,我使用以下查询来获取具有相同电话号码的行
select * from message group by to_number having count(*)>1;
但是它也使用不同的schedule_id对行进行分组
有人能帮我写这个查询吗?
发布于 2019-02-11 22:21:27
您可以使用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;
发布于 2019-02-11 22:22:54
您应该对subqselect和count group by phone_number使用连接
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
发布于 2019-02-11 22:21:36
这就是你所期待的吗?
select distinct phone_number, schedule_id from message;
https://stackoverflow.com/questions/54632562
复制相似问题