mysql - SQL,按一列与一个不同列进行分组

标签 mysql sql group-by distinct

我有一个具有以下结构的表格

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 的行分组

有人可以帮我写这个查询吗?

最佳答案

您可以使用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;

关于mysql - SQL,按一列与一个不同列进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54632562/

相关文章:

c# - 有没有更好的方法来使用 LINQ 聚合字典?

mysql - 选择查询的计算字段错误

mysql - 在mysql中进行字符串比较后获得最佳记录

mysql - 根据标识符和来自另一行的值选择行

mysql - 获取值上方和下方的行或最近的行

mysql - 按天分组的累计总和

mysql - 在mysql中选择非零列

sql - 当另一半为空时,union 从查询的一半中删除行

mysql - 如何获取表之间的关系并区分一对一和一对多?

mysql - SQL 查询 : multiple count group by date