ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > E问E答 > SQL in Excel > Excel中如何用SQL来提取重复记录来做数据透视表的数据源?

Excel中如何用SQL来提取重复记录来做数据透视表的数据源?

作者:绿色风 分类: 时间:2022-08-17 浏览:152
楼主
wise
Q:Excel中如何用SQL来提取重复记录来做数据透视表的数据源?
A:请见如下SQL语句:
  1. Select * From [表名$] Where 字段名1 In
  2. (Select 字段名1 From [表$] Group By 字段名1 Having Count(*)>1)
本题例子中的SQL写法为:
  1. Select * From [Sheet1$] Where 本地网 In
  2. (Select 本地网 From [Sheet1$] Group By 本地网 Having Count(*)>1)
解释:要查询本地网中存在哪些重复的数据?
而经常常见的是提取不重复记录,用distinct来就可以,但在本题中,却不能实现
本段代码分两部分:
(Select 本地网 From [Sheet1$] Group By 本地网 Having Count(*)>1)
请看该部分:首先对本地网进行统计汇总计数,用到了Group By 及 Having聚集函数
Count(*)>1就是说明本地网里面的计数超过1的,也就是存在重复的
而Select * From [Sheet1$] Where 本地网 In 这段代码的作用呢?
Where 本地网 In 这段代码比较重要,条件:抽取本地网中存在的重复记录的本地网,用到了一个in
这两段代码连接起来,就可以查询重复记录

SQL查询重复记录.rar
2楼
xyh9999
楼主是想让我们学习In的用法吧,类似In的用法Sql中还可用Exists来判断是否有记录存在达到与In相同的效果。
不过如果不是为了学习它们的用法,本贴的功能只要以下的语句就行了:
Select * From [表$] Group By 字段名1 Having Count(*)>1
3楼
尛安
如果提取不重复说则可以用:
Count(*)=1就是说明本地网里面的计数等于1的,也就是不存在重复的
  1. Select * From [表$] Group By 字段名1 Having Count(*)=1



谢谢小7学习了
4楼
LOGO
向小七学习
  1. Select distinct a.* From [Sheet1$] a, [Sheet1$] b
  2. where a.本地网=b.本地网 and a.小灵通号码<>b.小灵通号码
5楼
北虹桥
向小七学习
6楼
LOGO
  1. select * from [Sheet1$] where dcount("本地网","sheet1$","本地网='"&本地网&"'")>1

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap