- 注册时间
- 2008-9-13
- 最后登录
- 1970-1-1
- 在线时间
- 0 小时
- 阅读权限
- 200
- 积分
- 0
- 帖子
- 24482
- 精华
- 4
- UID
- 9
  
|
在一个表中有重复的记录,重复的次数可能是一条或多条,如何在重复记录中只留下一条,删除其他多余的记录,使数据集的每条记录都是唯一的?
: H) E% k) M% @$ J本文运用了一种比较笨拙不过逻辑比较清楚的方法,希望大家能提供更好的方法!
! F% }3 K6 C- a% [3 E9 d% }9 U1列出表中的重复记录. n5 v9 Y' v3 ]. v
(sameoda)1 n6 m) ?# G& \, v z
SELECT [2].[地级市], Count(*) AS 记录数" c* E& o: o0 w# Z8 H
FROM 2& K- |& [" v7 j: r% D8 }
GROUP BY [2].[地级市]
i! C/ D3 R z) aHAVING count(*)>1
9 \9 t+ H+ ^+ R9 H7 t+ aORDER BY [地级市];4 o, G) g* Y2 |. W6 d& m
地级市记录数100000951094210000095111621000009511272100000951138210000095114921000009511502
7 N5 |" Z. L2 {# u3 d: v6 z7 r2以下是除去相同记录的过程
2 {0 y9 |/ u9 k k1)列出表中的所有重复记录! S/ i ~7 S0 d; l7 `
(表2中重复记录)2 ]/ A: _- V0 |
SELECT 2.*
& _& F/ S1 y3 @6 N2 k+ WFROM 2 RIGHT JOIN sameoda ON [2].[地级市]=[sameoda].[地级市];
5 Y' D% e3 a! v% T0 W I4 kID编号地级市保险货物名称数量及包装单位声明价值(元)运输自运输到74691466100000951094苯扎贝特片、水飞蓟宾胶囊3箱18600天津佳木斯53511077100000951094苯扎贝特片、水飞蓟宾胶囊3箱18600天津佳木斯53501076100000951116水飞蓟宾胶囊5箱29000天津乌鲁木齐74681465100000951116水飞蓟宾胶囊5箱29000天津乌鲁木齐53531079100000951127氟他胺片4箱66800天津哈尔滨74711468100000951127氟他胺片4箱66800天津哈尔滨
9 Q' r1 s( t7 J( S1 C% E% G4 Z1 m2)从重复记录中找到唯一的一条记录5 J9 d$ [ C% R6 I! {0 A8 ~$ B
minbihanhao
. r* }. R) T5 h' oSELECT 2.*
+ C, D) x' W% z& E: s6 J1 qFROM 2 LEFT JOIN 表2中重复记录 ON [2].[ID]=[表2中重复记录].[ID]
, j$ H8 D- ^9 d8 i/ {WHERE [表2中重复记录].[id] Is Null;) \' U) J$ H7 I" h) `/ d+ s
地级市id100000951094535110000095111653501000009511275353100000951138535410000095114953521000009511505355, x8 [& f L. |0 Y
3)显示唯一记录的全部信息2 M: B( P* n1 _
allsame1
k; N8 k2 Y, sSELECT 2.* @+ g' i; L- l' M% B
FROM 2 LEFT JOIN minbihanhao ON ([2].[地级市]=[minbihanhao].[地级市]) AND ([2].[id]=[minbihanhao].[id])' y- A/ B/ Q: ^
WHERE [minbihanhao].[地级市] Is Not Null
# s. F3 }9 H0 T2 D* IORDER BY [2].[id];1 N8 w; [' c1 k( F/ W5 T
4 O o! ^, p( B& J" r* Z, U9 ^4)在原表中除去所有相同的记录
! H6 Z* H; x0 A' v4 {) Ndropsame2
6 u, A4 h- r! E+ uSELECT 2.** q; n2 w; g/ T/ G
FROM 2 LEFT JOIN 表2中重复记录 ON [2].[ID]=[表2中重复记录].[ID]/ p1 A/ U. J: }) W6 E6 p" W9 P. p! R+ m
WHERE [表2中重复记录].[id] Is Null;* {% K8 Q8 q0 v! R
5)表2除去重复记录=在原表中除去所有相同的记录+显示唯一记录的全部信息
5 P/ @- a5 K5 N I! F+ E$ M表2除去重复记录* t1 x: P, P4 O6 I! d
SELECT *9 u, Y3 [. ^2 x, n/ H
FROM dropsame2
+ [& i- v7 I$ ]2 V% c6 bUNION select * from2 o1 A% k1 y) P* Q6 m3 \
allsame1; |
|