zoukankan      html  css  js  c++  java
  • oracle过滤某个字段重复记录,只获取一条记录

    一,首先想到:

    1,关键字distinct

    2,group by

    3,MAX,MIN这样的函数被称为聚集函数,和GROUP搭配起来用

    但均无法实现,执行结果如下

    举例:

    表名:OffsiteOutreachTeam_List

    字段:CORPADDLEVEL(获取该字段不重复数据),CHANNELCODE, CORPNAME, BELONGORGNAME

    执行结果:

    1,distinct

    --一个字段有效,多个字段无效

    select distinct CORPADDLEVEL from OffsiteOutreachTeam_List;

    select distinct CORPADDLEVEL ,CHANNELCODE, CORPNAME, BELONGORGNAME from OffsiteOutreachTeam_List;

    注意:当除了过滤字段外的其他所有字段内容相同时,才可以起到过滤效果。

    2,group by

    --只能查询一个字段

    select CORPADDLEVEL from OffsiteOutreachTeam_List group by CORPADDLEVEL; --报错 not a group by expression

    select CORPADDLEVEL,CHANNELCODE, CORPNAME, BELONGORGNAME from OffsiteOutreachTeam_List group by CORPADDLEVEL;

    3,MAX,MIN这样的函数被称为聚集函数,和GROUP搭配起来用

    --只能过滤两个字段

    SELECT MIN(CHANNELCODE), CORPADDLEVEL FROM OffsiteOutreachTeam_List GROUP BY CORPADDLEVEL --报错 not a group by expression

    SELECT MIN(CHANNELCODE), CORPADDLEVEL,CORPNAME, BELONGORGNAME FROM OffsiteOutreachTeam_List GROUP BY CORPADDLEVEL

    二,正确方式

    1,关键字 row_number() OVER(PARTITION BY 使用子查询对重复数据按照123...排序,再条件需要为1的。

    select  CORPADDLEVEL ,CHANNELCODE, CORPNAME, BELONGORGNAME
    from(select ol.CORPADDLEVEL,ol.CHANNELCODE, ol.CORPNAME, ol.BELONGORGNAME, row_number() OVER(PARTITION BY ol.CORPADDLEVEL ORDER BY ol.CORPADDLEVEL) ds
    from OffsiteOutreachTeam_List ol
    where ol.CORPADDLEVEL is not null)
    where ds = 1

    2,使用min group by进行子查询,获取唯一字段,再查询所有字段。
    select  CORPADDLEVEL ,CHANNELCODE, CORPNAME, BELONGORGNAME from OffsiteOutreachTeam_List where CHANNELCODE in
    (select min(CHANNELCODE) from OffsiteOutreachTeam_List group by CORPADDLEVEL) order by CORPADDLEVEL;

  • 相关阅读:
    Tarjan求图的连通性总结
    hdu3849 Tarjan求无向图的割边+map
    两种代码风格解决强连通分量解决加多少条边使整个图连通&多少个点可以到达所有点
    hdu 离线处理+并查集
    hdu 1325判断是不是树
    poj3041 最小点覆盖即最大匹配(匈牙利算法)(模板)
    poj 2186 tarjan求强连通分量(模板题)
    poj2135 最小费用最大流模板
    SPFA队列模板
    链表专项刷题
  • 原文地址:https://www.cnblogs.com/shenkebky/p/8259876.html
Copyright © 2011-2022 走看看