在项目中我们常会对数据进行去重处理,有时候会用in或者EXISTS函数。或者通过group by也是可以实现查重
不过Postgresql还有自带去重函数:distinct
下面是distinct 的实例:
1、创建表:user
CREATE TABLE `user` (
`name` varchar(30) DEFAULT NULL,
`age` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO `user` VALUES ('张三', 20);
INSERT INTO `user` VALUES ('李四', 22);
INSERT INTO `user` VALUES ('李四', 20);
INSERT INTO `user` VALUES ('张三', 22);
INSERT INTO `user` VALUES ('张三', 20);
查询结果:
SELECT * FROM user
张三 20
李四 22
李四 20
张三 22
张三 20
2、根据 name 查询去重后的数据:
SELECT distinct name FROM user
张三
李四
3、根据name 和 age 查询去重后的数据:
SELECT distinct name,age FROM user
张三 20
李四 22
李四 20
张三 22
4、根据name,age查询重复数据数:
SELECT distinct name,age,count(*) 数据条数 FROM user GROUP BY name,age
张三 20 2
张三 22 1
李四 20 1
李四 22 1
二、查出重复数据后,我们需要删除重复数据
删除重复数据一般几种方式,一般采用 临时表 或者根据 某个字段,例如id等,通过max或者min函数去重。