Sql去重一些技巧
下午的时候遇到点问题,Sql去重,简单的去重可以用 DISTINCT 关键字去重,不过,很多情况下用这个解决不了问题。重复的数据千变万化,例如:类似于qq、微信的最近联系人功能,读取这些数据肯定要和消息表关联,那样关联的数据会出现很多重复的,只是消息和时间不一样。最终的决定条件是最后一次发消息的时间。那么问题来了,如何做呢
SELECT colName FROM ( SELECT MAX(cloName1),cloName2..... FROM tableName(关联表) GROUP BY colName ) t ORDER BY t.colName
这句sql语句只能过滤数字类型和时间,对于其他的去重条件还是不够的,可以用ROW_NUMBER()来做,Sql如下:
SELECT t.Id,
t.PCName,
t.rowid
FROM
(
SELECT Id,
PCName,
ROW_NUMBER() OVER (PARTITION BY PCName ORDER BY Id) AS rowid
FROM dbo.PC
) AS t
WHERE t.rowid = 1;
下面是根据having去做的例子:
a.根据某一列查询重复数据Sql如下:
select * from A
where Id in (select Id from A group by Id having count(Id) > 1)
根据多个列查询重复数据Sql如下:
select * from A a
where (a.Id,a.gender) in (select Id,gender from A group by Id,gender having count(*) > 1)
Sql去重一些技巧的更多相关文章
- 【转】PL/SQL Developer使用技巧、快捷键
原文链接:PL/SQL Developer使用技巧.快捷键 1.类SQL PLUS窗口:File->New->Command Window,这个类似于oracle的客户端工具sql plu ...
- mysql操作sql的小技巧
本篇集中整理一下执行sql的小技巧,这种方式不仅带来了操作上的便捷,也可以保证数据可以数据的安全性. 1:查询数据(保证查询性能) 首先想先解释一下 SELECT * 和 SELECT t.id , ...
- PL/SQL Developer使用技巧(部分)
PL/SQL Developer使用技巧(部分) 关键字自动大写 在sql命令窗口中输入SQL语句时,想要关键字自动大写,引人注目该怎么办呢? 一步设置就可以达成了.点击Tools->Prefe ...
- js 数组去重小技巧
js 数组去重小技巧 Intro 今天遇到一个问题,需要对数据进行去重,想看一下有没有什么比较方便的方法,果然有些收获. Question 问题描述: 我有一个这样的数据: [ { "Pro ...
- SQL高级查询技巧
SQL高级查询技巧 1.UNION,EXCEPT,INTERSECT运算符 A,UNION 运算符 UNION 运算符通过组合其他两个结果表(例如 TABLE1 和 TABLE2)并消去表中任何重 ...
- sql server 小技巧(8) visual studio 2013里使用Sql server compact 4.0及发布问题处理
1. 安装 Microsoft SQL Server Compact 4.0 https://www.microsoft.com/zh-cn/download/confirmation.aspx?i ...
- sql server 小技巧(2) 删除sql server中重复的数据
with list_numbers as ( select Name, AuthorOrTime, Url, Price, EstimatePrice, Size, Category, ROW_NUM ...
- sql server 小技巧(1) 导入csv数据到sql server
1. 右击 DataBaseName,选择 Tasks->Import Data 2. 选择数据源: Flat File Source , 选择一个csv文件 Advance: 选择所有的列,改 ...
- sql server 小技巧(7) 导出完整sql server 数据库成一个sql文件,包含表结构及数据
1. 右健数据库 –> Tasks –> Generate Scripts 2. 选择所有的表 3. 下一步,选择Advanded, Types of data to script ...
随机推荐
- C 标准库 - string.h之strcpy使用
strcpy Copies the C string pointed by source into the array pointed by destination, including the te ...
- String.Compare 方法 (String, Int32, String, Int32, Int32)
String.Compare 方法 (String, Int32, String, Int32, Int32) 对两个指定的 String 对象的子字符串进行比较,并返回一个指示二者在排序顺序中的相对 ...
- [转]OData/WebApi
本文转自:https://github.com/OData/WebApi/tree/vNext OData Web API Introduction OData Web API (i.e., ASP. ...
- [javaEE] 开源数据库连接池
一些开源组织提供了数据源的独立实现: DBCP数据库连接池 C3P0数据库连接池 Apache Tomcat内置的连接池 DBCP连接池 apache提供的连接池实现,需要导入common-dbcp. ...
- ajax上传数据
---恢复内容开始--- ajax上传数据,(简洁版) 1.上传普通同表单标签内容. 1.获取表单的内容 1. var file=$('#file').val();(放在点击事件后面) 2. var ...
- jQuery的几点笔记
1.jQuery核心选择器 (sizzle.js) http://sizzlejs.com/ 2.jQuery有两个主要特性 ①隐式迭代 //改变页面所有p标签的背景色 $('p').css('bac ...
- mysql数据库详解
001 数据库应用系统设计 1.规划 2.需求分析 3.概念模型设计 4.逻辑设计 5.物理设计 6.程序编制及调试 7.运行及维护. 002 创建数据库 CREATE DAT ...
- 合并excel的多个sheet
'合并excel的多个sheetSub 合并当前工作簿下的所有工作表()Application.ScreenUpdating = FalseFor j = 1 To Sheets.Count If S ...
- layui-学习01-基本api
全局配置 layui.config({ dir: '/res/layui/', //layui.js 所在路径(注意,如果是script单独引入layui.js,无需设定该参数.),一般情况下可以无视 ...
- 移动端 line-height 不垂直居中问题
本文是从简书复制的, markdown语法可能有些出入, 想看"正版"和更多内容请关注 简书: 小贤笔记 一般情况下, 我们把 line-height 的值设置为 height 的 ...