zoukankan      html  css  js  c++  java
  • oracle 去重查询

    -------------------- 
    原作者:搬长城的红砖 
    原文:https://blog.csdn.net/yin_jia_521/article/details/72626182 
     

    oracle 数据库多字段去重

    方法介绍:distinct 关键字、group by  、row_number ()over(partition by 列 order by 列 desc)

    我的需求是:根据某几列去重 查询出去重后的全部信息。最后我选择的是第三种方法。


    我的想法:我想找出一种更简单的方法去 实现去重查询。越直接越好。

    表结构&&内容

    1、distinct 关键字的用法:distinct 关键字后面的字段组合去重 distinct 必须

    select distinct id from test

    结果 ;根据id 去重

    select distinct id,name from test

    结果:根据id和name 组合去重(类似于  id || name  这样去重)

    2、group by 分组去重

    select id,name from test group by id,name

    结果:根据id,name 组合去重

    3、row_number ()over(partition by 列 order by 列 asc | desc)方法

    3.1 row_number() over(order by column asc)   先对列column按照升序,再为每条记录返回一个序列号

    3.2 row_number() over(partition by column1 order by column2 asc) 先按照column1分组,再对分组后的数据根据column2 升序排列

    注:order by 必须得有

    例子select a.*,row_number() over(partition by a.id,a.sex order by name) su from test a;

    去重例子:根据 id和sex 去重

    select id,name,sex from(
    select a.*,row_number() over(partition by a.id,a.sex order by name) su from test a )
    where su=1

    结果:

    我的需求是:根据某几列去重 查询出去重后的全部信息。
     

  • 相关阅读:
    appium 方法整理
    appium_获取元素状态
    Locust性能测试_参数关联
    Locust性能测试-参数化批量注册
    pytest_命令行传参
    pytest_函数传参和firture传参数request
    pytest_用例a失败,跳过测试用例b和c并标记失败xfail
    pytest_skip跳过用例
    pytest_使用自定义标记mark
    算法:迷宫问题
  • 原文地址:https://www.cnblogs.com/wanchen-chen/p/12934115.html
Copyright © 2011-2022 走看看