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可以帮助我们在处理含有空值的排序排列中,将空值字段记录放到最前或最后显示,帮助我们得到期望的结果。

  • 相关阅读:
    spark shuffle 机制
    hive explain 源码分析
    前端jQurey
    js-dom操作
    前端JS
    前端CSS
    Redis和MongoDB区别
    MySQL数据库备份
    MySQL索引
    python连接mysql服务端
  • 原文地址:https://www.cnblogs.com/sooner/p/7727774.html
Copyright © 2011-2022 走看看