Postgresql去重函式distinct
在專案中我們常會對資料進行去重處理,有時候會用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函式去重。