zoukankan      html  css  js  c++  java
  • Oracle分析函数-nulls first/nulls last

    select * from criss_sales;

    通过rank()、dense_rank()、row_number()对记录进行全排列、分组排列取值
    但有时候,会遇到空值的情况,空值会影响得到的结果的正确性,如下所查。

    select
          dept_id
         ,sale_date
         ,goods_type
         ,sale_cnt
         ,rank() over (partition by dept_id order by sale_cnt desc)
    from criss_sales;

    我们可以看到部门D01中的销售数量为NULL的记录排名居然是第一,这显然是不对的。

    此时,就需要用到nulls last来处理
    处理后结果如下:

    select
          dept_id
         ,sale_date
         ,goods_type
         ,sale_cnt
         ,rank() over (partition by dept_id order by sale_cnt desc nulls last)
    from criss_sales;

    这样就得到了期望的结果。
    nulls first/nulls last可以帮助我们在处理含有空值的排序排列中,将空值字段记录放到最前或最后显示,帮助我们得到期望的结果。

  • 相关阅读:
    maven项目打ZIP包
    springBoot文档地址
    延迟队列DelayQueue
    图片处理依赖
    java模板引擎替换代码
    redisson笔记
    linux 自动备份脚本
    shell 远程备份日志
    amqp事务
    redis 事务
  • 原文地址:https://www.cnblogs.com/sooner/p/7727774.html
Copyright © 2011-2022 走看看