关于sql去重,我简单谈一下自己的简介,如果各位有建议或有不明白的欢迎多多指出。

关于sql去重最常见的有两种方式:DISTINCT和ROW_NUMBER(),当然了ROW_NUMBER()除了去重还有很多其他比较重要的功能,一会我给大家简单说说我自己在实际中用到的。

假如有张UserInfo表,如下图:

现在我们要去掉完全重复的数据:SELECT DISTINCT * FROM dbo.UserInfo结果如下图:

但是现在有个新的需求,要把名字为‘张三'的去重,也就是相同名字的只要一条数据,要是还用DISTINCT的话就很麻烦了。想必聪明的你已经想到此时是ROW_NUMBER()登场的时候了吧。我们只需执行这样一句话就万事大吉了SELECT * FROM (SELECT ROW_NUMBER() OVER(PARTITION BY Name ORDER BY ID) AS RowId,* FROM dbo.UserInfo) x WHERE x.RowId=1;虽然看起来有点长,但是很容易理解。现在执行的结果如下图:

现在名字重复的数据只取了一条,而且是根据sql语句中的ORDER BY ID取的第一条,其中PARTITION BY后面跟的就是去重的字段,也许你想问为什么要加WHERE x.RowId=1呢,现在我们不加这个条件看看结果如何:SELECT * FROM (SELECT ROW_NUMBER() OVER(PARTITION BY Name ORDER BY ID) AS RowId,* FROM dbo.UserInfo) x,如下图:

现在我们已经看到,如果不加条件会把所有数据都查出来,所以RowId=1的数据就是去重后的数据;

ROW_NUMBER()除了可以去重还可以得到表的行号,现在我们只需一下语句:SELECT ROW_NUMBER() OVER(ORDER BY ID) AS RowNum,* FROM dbo.UserInfo,结果如下图:

得到了所有的数据,而且还得到了每条数据的行号,其中数据的顺序可以根据ORDER BY ID调节,也就是说不去重的话就不用加PARTITION BY Name了,此功能在分页中用的也比较多,假如每页15条数据,分页时直接加条件RowNum Between 1 AND 15就行了。孤狼发表的博客很少,平时也比较懒,希望对大家有用。

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

sql数据库去重语法_浅谈sql数据库去重_MySQL相关推荐

  1. 浅谈计算机数据库技术的应用,浅谈计算机数据库技术的应用意义.doc

    浅谈计算机数据库技术的应用意义.doc 浅谈计算机数据库技术的应用意义 [摘 要]随着计算机技术与网络通信技术的发展,数据库技术已成为信息社会中对大量数据进行组织与管理的重要技术手段及软件技术,是网络 ...

  2. python查询数据库带逗号_浅谈pymysql查询语句中带有in时传递参数的问题

    直接给出例子说明: cs = conn.cursor() img_ids = [1,2,3] sql = "select img_url from img_url_table where i ...

  3. laytpl语法_浅谈laytpl 模板空值显示null的解决方法及简单的js表达式

    浅谈laytpl 模板空值显示null的解决方法及简单的js表达式 laytpl 模板语法 {{ d.field }} 输出一个普通字段,不转义html 官方的说明 但d.field 为空时会显示nu ...

  4. mysql 安全问题_浅谈MySQL数据库的Web安全问题

    数据安全是现在互联网安全非常重要一个环节.而且一旦数据出现问题是不可逆的,甚至是灾难性的. 有一些防护措施应该在前面几个博文说过了,就不再赘述.比如通过防火墙控制,通过系统的用户控制,通过Web应用的 ...

  5. mysql 恢复数据库乱码了_再谈MySQL数据库备份恢复和乱码问题

    在我转到wordpress之后第一个考虑的是它的数据库备份恢复问题,因为写bloger都知道,自己的blog记录的都是自己需要的宝贵的资料和文字,如果因为各种未知因素导致数据库崩溃或者空间商出了问题, ...

  6. mysql 数据库备份 乱码_再谈 MySQL 数据库备份恢复和乱码问题

    在我转到wordpress之后第一个考虑的是它的数据库备份恢复问题,因为写bloger都知道,自己的blog记录的都是自己需要的宝贵的资料和文字,如果因为各种未知因素导致数据库崩溃或者空间商出了问题, ...

  7. 云原生数据库的幕后英雄:浅谈分布式数据库的计算和存储分离

    引言 分布式数据库替代传统商业数据库是近年最热门和最具争议的话题.理论上没有什么数据库不能被替代,现实却往往是代价大到难以承受.怎样才能更好的降低替代带来的代价呢?开源数据库TiDB创始人黄东旭在&l ...

  8. 浅谈SQL Server 数据库的触发器

    浅谈SQL Server 数据库的触发器   触发器的特征: 1.触发器是在对表进行增.删.改时,自动执行的存储过程.触发器常用于强制业务规则,它是一种高级约束,通过事件进行触发而被执行. 2.触发器 ...

  9. 浅谈SQL Server内部运行机制

    原文:浅谈SQL Server内部运行机制 对于已经很熟悉T-SQL的读者,或者对于较专业的DBA来说,逻辑的增删改查,或者较复杂的SQL语句,都是非常简单的,不存在任何挑战,不值得一提,那么,SQL ...

最新文章

  1. 利用python爬虫与数据分析,打造最强玩法,轻松成为大神级玩家!
  2. ISA防火墙之利用WINS服务器实现WPAD
  3. JDK 监控和故障处理工具总结
  4. 中科院合肥科学技术学校05计算机,硕士研究生课程设置-中国科学院合肥物质科学研究院.PDF...
  5. 尚硅谷的 ediary 笔记_干货分享 | 硅谷创新加速营第五讲教您合理规划融资需求 降低投资风险...
  6. 蓝桥杯2017初赛-k倍区间-前缀和
  7. Android实现监测网络状态
  8. linux下collada-dom编译,Building Collada
  9. mr图像翻转的原因_MRI图像常见问题及对策
  10. java异步刷新集合,同步和异步集合的性能测试,异步集合性能测试,package cn.o
  11. 在微型计算机中1 mb准确等于几个字,2010安徽省计算机等级考试二级试题及答案...
  12. 信息化基础建设 工作流开发
  13. 一款基于jQuery底部带缩略图的焦点图
  14. linux RPM包安装、更新、删除等操作命令简明总结, 如何查看yum安装的软件路径 ?...
  15. DFS/并查集 Codeforces Round #286 (Div. 2) B - Mr. Kitayuta's Colorful Graph
  16. CH32F103C8T6核心板三种程序下载方式简介
  17. 水系图一般在哪里找得到_Nano Energy:铝离子扩层V2O5nH2O用于高性能水系锌离子电池...
  18. 【Matlab】imcrop的用法
  19. 使用EXCEL计算并绘制KDJ指标
  20. 去哪儿笔试:身份证分组

热门文章

  1. PAT-013 L1-013. 计算阶乘和
  2. nginx关闭favicon.ico 日志记录
  3. 4种操作符的区别和联系
  4. C#操作xml SelectNodes,SelectSingleNode总是返回NULL
  5. [转载] Python函数中把列表(list)当参数
  6. [转载] 详解 Numpy.ndarray
  7. [转载] 【python第四天】 注释和缩进
  8. deepin(debian)下使用Git
  9. 虚拟机安装ubuntu18.04及其srs服务器的搭建
  10. Python中sort和sorted函数代码解析