mysql数据聚合技术_Mysql 去重 聚合

示例数据表中的数据:

mysql> select * from talk_test;

+----+-------+--------+

| id | name  | mobile |

+----+-------+--------+

|  1 | xiao9 | 555555 |

|  2 | xiao6 | 666666 |

|  3 | xiao9 | 888888 |

|  4 | xiao9 | 555555 |

|  5 | xiao6 | 777777 |

+----+-------+--------+

进行单列去重后的结果:

mysql> select distinct(name) from talk_test;

+-------+

| name  |

+-------+

| xiao9 |

| xiao6 |

+-------+

2 rows in set (0.01 sec)

mysql> select distinct(mobile) from talk_test;

+--------+

| mobile |

+--------+

| 555555 |

| 666666 |

| 888888 |

| 777777 |

+--------+

**只会保留指定的列的信息

进行多列去重后的结果:

mysql> select distinct name,mobile from talk_test;

+-------+--------+

| name  | mobile |

+-------+--------+

| xiao9 | 555555 |

| xiao6 | 666666 |

| xiao9 | 888888 |

| xiao6 | 777777 |

+-------+--------+

**只有所有指定的列信息都相同,才会被认定为重复的信息

distinct和Group by 区别:

distinct只是将重复的行从结果中出去;

group by是按指定的列分组,一般这时在select中会用到聚合函数。

distinct是把不同的记录显示出来。

group by是在查询时先把纪录按照类别分出来再查询。

group by 必须在查询结果中包含一个聚集函数,而distinct不用。

聚合函数 :

AVG

MAX

MIN

SUM

COUNT

假定 Table 表有三列, id, key,value 其中 id是主键,不能重复,key和value可能有重复记录

使用distinct去重复:

select distinct key,value from table 不能显示主键。

使用group by 去重复 :

select id,key,value from table A, (select key,value, min(id) PID from table group by key,value ) B where A.id=B.PID

可以显示主键

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值