国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

SQL刪除重復的記錄(只保留一條)

2024-07-21 02:46:32
字體:
來源:轉載
供稿:網友
SQL刪除重復的記錄(只保留一條)

首先新建表:

--創建示例表CREATE TABLE t(    id INT IDENTITY(1,1) PRIMARY KEY,    a VARCHAR(10),    b VARCHAR(10))--插入數據INSERT INTO t SELECT 'aa','bb' UNION ALLSELECT 'a1','bgb' UNION ALLSELECT 'aa','bb' UNION ALLSELECT 'a2','bb' UNION ALLSELECT 'aa3','beeb' UNION ALLSELECT 'aa','bb' UNION ALLSELECT 'a2','bb' 

查詢重復數據:可看到重復數據為:[a2,bb] 重復2次,[aa,bb] 重復3次

--查詢重復數據SELECT a,b,COUNT(*) count FROM t GROUP BY a,b

刪除重復數據 (重復數據只保留1條):

方法一

--首先通過子查詢取出 id 最小的不重復行,然后通過 NOT IN 刪除重復數據DELETE FROM t WHERE id NOT IN(    SELECT MIN(id) FROM t GROUP BY a,b)

方法二

--首先通過 PARTITION BY 對 a,b 列進行分區排序并生成序號列,然后將序號大于 1 的行刪除,即刪除了重復數據DELETE a FROM (SELECT ROW_NUMBER() OVER (PARTITION BY a,b ORDER BY ID) num FROM t) a WHERE num>1


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 永平县| 莱阳市| 华宁县| 鹤岗市| 鲁甸县| 松桃| 民丰县| 葫芦岛市| 彩票| 金湖县| 齐河县| 高邑县| 七台河市| 嘉祥县| 鹤峰县| 城步| 丁青县| 柏乡县| 茂名市| 萝北县| 四川省| 赣州市| 廉江市| 盖州市| 报价| 灯塔市| 张家口市| 南投市| 南漳县| 图木舒克市| 德保县| 新丰县| 深圳市| 正安县| 旬邑县| 花莲县| 吴堡县| 襄垣县| 花莲县| 白山市| 容城县|