sql三种去重查询distict、groupby和row_number()over。

更新时间:2023-07-11 19:51:56 阅读: 评论:0

sql三种去重查询distict、groupby和row_number()over。sql三种去重查询
经常有⽤到在这⾥总结⼀下三种去重查询distict、group by 和row_number()over。
1、distinct
表student数据如下
id name gender fraction
1张三男88
2李四⼥99
3赵五男66
4张飞男88
5张三⼥99
6李四⼥857
查出不重复的name与fraction的值
鼻翼长痘的原因lect distinct name,fraction from student
结果:
张三 88
李四 99
赵五 66
2、group by
lect name,fraction from student grout by name、fraction
结果如上⾯的distinct⼀样
3、row_number() over
slq rver 通过Row_Number 函数给数据库表的记录进⾏标号,在使⽤的时候会跟over⼦句,⽽over⼦句主要⽤来对表中的记录进⾏分组和排序
语法如下:
差距的近义词ROW_NUMBER() OVER(PARTITION BY COLUMN1 ORDER BY COLUMN2)
美洲斑潜蝇1:Partition BY ⽤来分组
2:Order by ⽤来排序
接下来⽤ row_number() over 进⾏去重。⾸先⽤name 进⾏分组,id进⾏排序。
具体SQL 语句如下
家用热水器哪种好SELECT * FROM (
养蜂蜜lect *,ROW_NUMBER() over(partition by name order by id desc) AS rn from urinfo ) AS u =1海蜇皮怎么凉拌
结果如下:
1    张三男    88
2    李四⼥    99
3    赵五男    66
4    张飞男    88
4.思考
distinct 和group by 的区别:生气不如争气
(1)distinct常⽤来查询不重复记录的条数:count(distinct name),group by 常⽤它来返回不重记录的所有值。
(2)在使⽤group by 分组后,在lect中可以选择分组字段,和⾮分组字段的函数值,如 max()、min()、sum、count()等
带钰的女孩名字distinct 和row_number over()区别:
(1)distinct 和 row_number over 都可以实现去重功能,⽽distinct 作⽤于当⾏的时候,其"去重" 是去掉表中字段所有重复的数据,作⽤于多⾏的时候是,其"去重"所有字段都相同的数据。
(2)在使⽤row_number over ⼦句时候是先分组,然后进⾏排序,再取出每组的第⼀条记录"去重"

本文发布于:2023-07-11 19:51:56,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/89/1077448.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:分组   字段   记录   函数
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图