java中sql查重跟去重_sql中查重和去重
在这记录一个实习期间遇到的一个查重和去重的sql语句。
查重语句:(group by 查重)
SELECT user_id,
count(*) as num
FROM 表名
WHERE 条件 GROUP BY user_id HAVING count(*)>1;
sql语句关键词为大写,基本思路就是以user_id字段来进行分组排序,count(*)函数是计数,这语句结果图如下
user_id
num
xiaoming
2
xiaoyu
3
上面所展示出来的都是有user_id重复的数据,user_id为xiaoming的字段有2条重复记录,xiaoyu存在3条重复,因为如果没有重复的话count(*)也就是表中的num值应该为1。
去重语句:(row_number over()去重)
select user_id,
create_date,
row_number() over(partition by user_id order by create_date desc) as date_n
FROM 表名
WHERE date_n=1
AND 条件;
这里的去重就是利用了上述中的没有重复的count(*)为1,所以我们只需要取出1就可以了,但是问题在于,重复的字段中取出哪个去除哪个,还有就是把重复中要取出的count(*)值为1,这里我们要用到的就是排序函数,row_number() over(partition by order by)函数的具体可以自行百度,上诉实例中,总结就是按user_id分组,按create_date排序,desc这个是设置降序和升序的作用,通过row_number函数处理的大体效果:
user_id
creat_date
date_n
xiaoming
2018-05-06
1
xiaoming
2018-02-03
2
xiaoyu
2018-06-01
1
xiaoyu
2018-05-20
2
xiaoyu
2018-05-10
3
这就是达到了我们想取到1的目的。主要就是我们要清楚要根据什么来排序,这个字段意义在于通过其可以判断在同一user_id中的不同点。我们只要在where 条件中限制date_n=1即可去重。
结果图如下:
user_id
creat_date
date_n
xiaoming
2018-05-06
1
xiaoyu
2018-06-01
1
java中sql查重跟去重_sql中查重和去重相关推荐
- c#sql防注入模糊查询_SQL中利用LIKE实现模糊查询的功能
大家好,今日继续讲解<VBA数据库解决方案>,今日讲解的内容是:利用ADO,实现模糊查询.在上一讲中,我们实现了利用ADO快速查找的功能,今日我们实现工作表中模糊查找的功能.我们仍是利用上 ...
- oracle中SQL语句ge的用法,Oracle中SQL语句的几种用法
在诊断数据库系统性能的过程中,总会涉及到跟踪效率低下的SQL语句,Oracle数据库10g包含一种新的实用程序trcsess,它可以让您基于会话ID或模块名称之类的条件,有选择地从大量跟踪文件中抽取出 ...
- java拼接sql保留两位小数_SQL 保留两位小数的实现方式
问题: 客户要求,跟金额相关的数据,打印出来要保留两位小数,比如:13.2/13.200要显示为13.20: 分析: 首先查看数据库中的数据定义,均为decimal(12,2) ,直接通过数据库查询的 ...
- sql insert 自动增量值_SQL中有关DQL、DML、DDL、DCL的概念与区别
SQL(Structure Query Language)结构化查询语言是数据库的核心语言,是高级的非过程化编程语言.它功能强大,效率高,简单易学易维护.SQL语言基本上独立于数据库本身.使用的机器. ...
- sql 获取日期时分秒_Sql 中获取年月日时分秒的函数
1. GETDATE() 返回当前的时间和日期. 语法:getdate() select getdate() 2. CONVERT() 把日期转换为新数据类型的通用函数,可以用不同的格式显示日期/时间 ...
- mysql sql数值转字符拼接_sql中的字符串拼接
1. 概述 在SQL语句中经常需要进行字符串拼接,以sqlserver,oracle,mysql三种数据库为例,因为这三种数据库具有代表性. sqlserver: select '123'+'456' ...
- mysql sql 字符串字段保留数字_sql中取字符串中的数字语句_MySQL
bitsCN.com one: declare @s varchar(20) declare @i varchar(20) set @i='' set @s='新会员必须购买350元产品' while ...
- java拼接sql保留两位小数_SQL保留两位小数,四舍五入
数据库里的 float momey 类型,都会精确到多位小数.但有时候 我们不需要那么精确,例如,只精确到两位有效数字. 二.解决: 1. 使用 Round() 函数,如 Round(@num,2) ...
- Mybatis中sql的各种写法,项目中的。存储过程写法,创建索引写法
关键是扩大自己的视野,因为有的我真的不知道可以这样写? 比如: 一:if test --可以去掉多余的and <if test = "defaultQuery and sum == f ...
最新文章
- Mac下布置appium环境
- 管理者如何提升下属执行力---视频学习记录
- 被学校辞退、拒绝FB后:语音识别大牛Povey确认兼职北京初创公司,称主业还选中国...
- 谁最终需要Java模块?
- 和gdi绘图效率比较_绘图计算器测评来袭!哪一款才是你AP考试的最佳拍档?
- linux分区始柱号,找到了linux分区顺序错乱修复方法
- HDU 2844 Coins 多重背包
- 刚刚人均国民收入突破1万美元,作为打工人的你有感知吗?
- 浅谈linux性能调优之六:IO调度算法的选择
- linux分布式文件部署,Linux的企业-分布式文件系统mfs(moosefs)搭建与配置
- SprinMVC 拦截器验证权限和登录与注销的实现
- 【课程设计】企业职工工资管理系统 C语言版
- java kpi_KRA与KPI 绩效考核
- GetDC、GetDCEx、GetWindowDC - [Daily APIs]
- java银行账户类_用java编写银行账户的存款方法
- 外骨骼机器人(一):Lokomat核心技术简介
- 第979期机器学习日报(2017-05-24)
- 教你如何避开雪花算法的坑
- 模拟文件目录系统-CatalogTree
- 这些大厂笔试题 你都见识(被无情鞭挞)过了吗?—— 哔哩哔哩篇
热门文章
- 直播推流神器 Kplayer 手把手教你在B站7*24h全天直播
- nginx的请求转发配置
- 工作经验和生活经验的吸取
- RFC2544 网络基准测试(Benchmarking Methodology for Network Interconnect Dev)
- VLC 视频转成rtsp流
- acrobat PDF删除部分_pdf虚拟打印机,PDF打印像Word一样简单“pdfFactory Pro”
- 基于C#-winform的书店采购管理系统的设计
- Borland 賣掉 CodeGear
- 施乐维修服务器,富士施乐故障维修代码
- 声卡自动修补appleHDA,支持AMD平台