1. 程式人生 > >Postgresql去重函式distinct

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函式去重。