- 注册时间
- 2008-9-13
- 最后登录
- 1970-1-1
- 在线时间
- 0 小时
- 阅读权限
- 200
- 积分
- 0
- 帖子
- 24482
- 精华
- 4
- UID
- 9
|
在一个表中有重复的记录,重复的次数可能是一条或多条,如何在重复记录中只留下一条,删除其他多余的记录,使数据集的每条记录都是唯一的?6 X5 q J1 ?9 H4 c
本文运用了一种比较笨拙不过逻辑比较清楚的方法,希望大家能提供更好的方法!( k6 t/ C2 j: P2 z
1列出表中的重复记录2 s2 [4 P6 y7 g9 X" U9 B& w8 i' O
(sameoda)4 f0 N- d: K( v
SELECT [2].[地级市], Count(*) AS 记录数
7 `$ M2 [( t2 p( C4 C+ IFROM 2: I, m* Y' _3 j& X3 `( V# h# k/ F
GROUP BY [2].[地级市]/ R Q7 A* J* {
HAVING count(*)>1
0 t4 w! T; R( T6 H$ [ R# j% M9 j4 tORDER BY [地级市];
8 Q# E1 h2 @' A& e/ N地级市记录数100000951094210000095111621000009511272100000951138210000095114921000009511502) e" i; y. H" R4 w3 ]# l
2以下是除去相同记录的过程
8 d9 r- u+ B. k5 g2 z% D0 U1)列出表中的所有重复记录
$ W1 T2 y4 K8 e2 z" h- L(表2中重复记录)9 ^ Y% s, j$ F
SELECT 2.*3 Q7 [+ }8 Z- x( T- }
FROM 2 RIGHT JOIN sameoda ON [2].[地级市]=[sameoda].[地级市];( \' S# T8 Q1 T$ Z. o6 i; Q
ID编号地级市保险货物名称数量及包装单位声明价值(元)运输自运输到74691466100000951094苯扎贝特片、水飞蓟宾胶囊3箱18600天津佳木斯53511077100000951094苯扎贝特片、水飞蓟宾胶囊3箱18600天津佳木斯53501076100000951116水飞蓟宾胶囊5箱29000天津乌鲁木齐74681465100000951116水飞蓟宾胶囊5箱29000天津乌鲁木齐53531079100000951127氟他胺片4箱66800天津哈尔滨74711468100000951127氟他胺片4箱66800天津哈尔滨
7 e! ] a# q, F" M2)从重复记录中找到唯一的一条记录+ e3 U9 V+ d& |2 L
minbihanhao) ]. w5 W% Q5 u7 _/ f5 ]
SELECT 2.* ]- X& `. b" M3 k, r+ K
FROM 2 LEFT JOIN 表2中重复记录 ON [2].[ID]=[表2中重复记录].[ID]
8 X% j# y" J! \. e, XWHERE [表2中重复记录].[id] Is Null;1 J/ x6 `7 `0 D) W& _. l4 H9 N
地级市id100000951094535110000095111653501000009511275353100000951138535410000095114953521000009511505355
9 b' u3 B) U# t( | r5 Z8 Y3)显示唯一记录的全部信息
# C* E$ q' Q& E2 X' Wallsame1
- \/ g6 U r. \0 HSELECT 2.*
( v0 m6 \# Z, v s5 d5 ]( H! GFROM 2 LEFT JOIN minbihanhao ON ([2].[地级市]=[minbihanhao].[地级市]) AND ([2].[id]=[minbihanhao].[id])
( l& h. _0 P7 q2 ^: yWHERE [minbihanhao].[地级市] Is Not Null5 Y6 W+ r! V7 Q$ u& g# f8 ^
ORDER BY [2].[id];
! q* j' K/ e9 U* ^; Y
m; X. ]: I4 g }; D+ N' t7 J4)在原表中除去所有相同的记录
/ {5 [2 U' L3 D: i7 x+ qdropsame2. u) t! L* h$ }1 l0 M) l3 G
SELECT 2.*
3 m; ^5 o% K5 @, d: J4 gFROM 2 LEFT JOIN 表2中重复记录 ON [2].[ID]=[表2中重复记录].[ID]2 m: r0 A$ R7 }5 o" ^* ~
WHERE [表2中重复记录].[id] Is Null;
( W" B' ]( r( i5)表2除去重复记录=在原表中除去所有相同的记录+显示唯一记录的全部信息
: P1 N. N' _- j l, O8 p表2除去重复记录9 Z9 m6 ^! ^3 f$ {$ X' f
SELECT *% L5 S8 N& a- r: f8 H) ?
FROM dropsame2
0 u4 U* Y d4 ^# t/ F* _; S2 SUNION select * from
* u4 }: F4 a6 N0 z3 g+ T allsame1; |
|