sql:对某一字段去重,并展示其他字段信息 您所在的位置:网站首页 oracle去重查询数量 sql:对某一字段去重,并展示其他字段信息

sql:对某一字段去重,并展示其他字段信息

2024-01-21 13:52| 来源: 网络整理| 查看: 265

sql:对某一字段去重,并展示其他字段信息 1. 示例2. 详细分析:

1. 示例

为了举例专门建了一张表(usertest) 数据如下;

idnameage1LBJ352DWS283LBJ264KLS295KZM286KZM307LBJ33

现在以name字段去重,并同时展示其他字段的信息(name相同的记录随便展示那条都可以)。

这里容易犯错的语句如下: 错误示例:

select * from usertest where name in (select DISTINCT name from usertest )

这里利用distinct ,查询的结果是所有的。并不是去重的。

可以达到目的的sql 如下:

select * from usertest where id in (select max(id) as id from usertest group by name); 2. 详细分析:

这里使用的子查询、聚合函数、以及分组函数。

比如我以name来去重, 那么就以name来分组,这时候得到的结果有如下: 第一组: idnameage1LBJ353LBJ267LBJ33 第二组: idnameage2DWS28 第三组: idnameage4KLS29 第四组: idnameage5KZM286KZM30 使用聚合函数max(id) ,分组中id最大的 (min也可以,目的就是取分组中的其中一条) ,然后得到结果如下:

第一组: id = 7

第二组: id= 2

第三组: id= 4

第四组: id = 6

通过上述的子查询,得到了id 的集合 分别为(7,2,4,6) 最后通过外部查询 select * from usertest where id in (7,2,4,6) , 即查出了去重字段以及其他字段的信息,满足需求。

在这里插入图片描述

当然这只是其中一种写法,有兴趣尝试其他实现方式~



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有