当前位置: 首页 > news >正文

SQL不重复记录

由于设计需要,需要查询不重复的记录值,同类问题,想必大家都遇到过,于是乎马上GOOGLE一下,发现此类问题还挺多,解决方案也不少,仔细看看。
例如有如下表结构和值
table
fid name sex
1 a 男
2 b 男
3 c 女
4 d 女
5 a 男
6 b 男
方案一:distinct
select distinct name from table
得到结果:
name
a
b
c
d
实现效果,那如果要同时打开其它记录呢?再试试
select distinct name,id from table
测试没什么效果,查下得知,这样实际是要name和id字段都重复才被筛选。继续查找可得如下方法:
方案二:group by
select *, count(distinct name) from table group by name

Oracle下测试失败,据说MYSQL下通过,不管,继续思考....
翻翻书,试试
select min(fid),name,sex from table group by name
成功,现实如下结果:
fid name sex
1 a 男
2 b 男
3 c 女
4 d 女
继续思考,如果要打开所有记录,不指定字段用(*),貌似这方法就不行了!
select * from table where fid in(Select min(fid) FROM table group by name)
测试成功
fid name sex
1 a 男
2 b 男
3 c 女
4 d 女
方案三:
本来已经完了,突然想起前几天在网上查了查询数据中所有某字段不重复的记录
select * from table where name in(select name from table group by name having count(name)=2)
得到如下结果:
fid name sex
1 a 男
2 b 男
5 a 男
6 b 男
以此类推:
select * from table where name in(select name from table group by name having count(name)=1)
按道理说没问题,大家试试~~
再多的字段都全部现实。哎,原来如此简单!回顾网上方法distinct,Inner Join等等,麻烦,而且有很大局限性.
总结如下:
select distinct name from table打开不重复记录的单个字段
select * from table where fid in(Select min(fid) FROM table group by name)打开不重复记录的所有字段值
select * from table where name in(select name from table group by name having count(name)=1)打开不重复任意次数的所有记录

转载于:https://www.cnblogs.com/qiantuwuliang/archive/2009/06/03/1495784.html

相关文章:

  • Ruby 2.x 源代码分析:扩展 概述
  • 淘宝网Open API 入门教程
  • css3中追加的三种选择器
  • 终于安装成功了
  • angular2开源库收集
  • 如果爱能早点说出来
  • 数据库设计中的14个关键技巧
  • 二分查找模版
  • 大恶人吉日嘎拉之走火入魔闭门造车之.NET疯狂架构经验分享系列之(三)商业逻辑代码部分...
  • [每日一点]msgsnd函数代码跟踪
  • 硬币
  • 数字化管理(Digital Management)
  • 【生活】2017 开始!
  • UNIX IO---再谈文件描述符
  • HTML5 拖放(Drag 和 Drop)详解与实例
  • [iOS]Core Data浅析一 -- 启用Core Data
  • 【译】React性能工程(下) -- 深入研究React性能调试
  • Dubbo 整合 Pinpoint 做分布式服务请求跟踪
  • golang 发送GET和POST示例
  • JavaScript HTML DOM
  • js继承的实现方法
  • Laravel Mix运行时关于es2015报错解决方案
  • 程序员该如何有效的找工作?
  • 给Prometheus造假数据的方法
  • 软件开发学习的5大技巧,你知道吗?
  • 事件委托的小应用
  • 详解移动APP与web APP的区别
  • 协程
  • 因为阿里,他们成了“杭漂”
  • ​LeetCode解法汇总307. 区域和检索 - 数组可修改
  • (11)MSP430F5529 定时器B
  • (13)Hive调优——动态分区导致的小文件问题
  • (6)设计一个TimeMap
  • (C语言)球球大作战
  • (Git) gitignore基础使用
  • (三)终结任务
  • (转)Sublime Text3配置Lua运行环境
  • (转)总结使用Unity 3D优化游戏运行性能的经验
  • .NET/C# 异常处理:写一个空的 try 块代码,而把重要代码写到 finally 中(Constrained Execution Regions)
  • .netcore 如何获取系统中所有session_ASP.NET Core如何解决分布式Session一致性问题
  • .Net高阶异常处理第二篇~~ dump进阶之MiniDumpWriter
  • .NET关于 跳过SSL中遇到的问题
  • .NET简谈互操作(五:基础知识之Dynamic平台调用)
  • @Autowired标签与 @Resource标签 的区别
  • @FeignClient 调用另一个服务的test环境,实际上却调用了另一个环境testone的接口,这其中牵扯到k8s容器外容器内的问题,注册到eureka上的是容器外的旧版本...
  • @modelattribute注解用postman测试怎么传参_接口测试之问题挖掘
  • [ 隧道技术 ] cpolar 工具详解之将内网端口映射到公网
  • [ 云计算 | AWS 实践 ] 基于 Amazon S3 协议搭建个人云存储服务
  • [ 云计算 | Azure 实践 ] 在 Azure 门户中创建 VM 虚拟机并进行验证
  • [20171113]修改表结构删除列相关问题4.txt
  • [ASP.NET MVC]如何定制Numeric属性/字段验证消息
  • [ASP.NET 控件实作 Day7] 设定工具箱的控件图标
  • [AX]AX2012 R2 出差申请和支出报告
  • [BPU部署教程] 教你搞定YOLOV5部署 (版本: 6.2)
  • [CTF]2022美团CTF WEB WP