写点什么

YashanDB DENSE_RANK 函数

作者:YashanDB
  • 2025-05-08
    广东
  • 本文字数:934 字

    阅读完需:约 3 分钟

DENSE_RANK 为窗口函数,用于对数据的实时分析。

本函数不支持向量化计算。

本函数的语法描述及约束与RANK函数ROW_NUMBER函数一致,区别在于排序时对并列值的处理:

  • 本函数列出相同并列值,并对下一顺序值不跳号,例如 1,2,3,3,3,4,5,6……

  • RANK 函数列出相同并列值,并对下一顺序值跳号,例如 1,2,3,3,3,6,7,8……

  • ROW_NUMBER 函数不列出并列值,而是根据返回的结果递增,且不跳号,例如 1,2,3,4,5,6,7,8……

partition by 与 order by 的参数支持除 LOB、JSON、XMLTYPE、UDT 外的其它数据类型。

query_partition_clause|order_by_clause

窗口函数通用语法。

示例(HEAP 表)

-- sales_info_range表中包含如下字段和数据SELECT year,month,branch,product,quantity,amount,salsperson FROM sales_info_range;YEAR  MONTH BRANCH PRODUCT      QUANTITY      AMOUNT SALSPERSON----- ----- ------ --------- ----------- ----------- -------------2001  01    0101   11001              30         500 02010100112000  12    0102   11001              20         3002015  11    0101   11001              20         3002015  03    0102   11001              20         3002021  10    0101   11001              20         3002021  05    0101   11001              40         600
-- 按branch进行分组,并在组内按amount进行排序SELECT branch,amount,year,month,quantity, DENSE_RANK() OVER (PARTITION BY branch ORDER BY amount) denserank_resFROM sales_infoWHERE product='11001'ORDER BY branch,quantity;BRANCH AMOUNT YEAR MONTH QUANTITY DENSERANK_RES------ ----------- ----- ----- ----------- ---------------------0101 300 2015 11 20 10101 600 2021 05 40 20102 300 2015 03 20 10102 300 2000 12 20 10201 500 2001 01 30 10402 300 2021 10 20 1
复制代码


用户头像

YashanDB

关注

全自研国产新型大数据管理系统 2022-02-15 加入

还未添加个人简介

评论

发布
暂无评论
YashanDB DENSE_RANK函数_YashanDB_InfoQ写作社区