IT评测·应用市场-qidao123.com技术社区

标题: GBase与梧桐数据库窗口函数使用的比力 [打印本页]

作者: 郭卫东    时间: 2024-11-7 12:55
标题: GBase与梧桐数据库窗口函数使用的比力
一、媒介

  窗口函数可以进行复杂的数据分析,使数据处理变得更加灵活和强盛。通过这些函数,用户可以在差别的窗口范围内对数据进行汇总、平均、计数等操纵,以下先容一些常用的窗口函数分别在梧桐数据库和GBase数据库中的使用。
二、创建测试用例

  为更好的体现函数的使用,现创建一个测试表来验证各类窗口函数的使用及返回结果;
1、建表

  1. -- gbase数据库建表create table rows_test
  2. (
  3. user_id varchar(10),    --用户idprod_id varchar(10),    --产品idsale_cnt decimal(10,0)  --销售数量);-- 梧桐数据库建表create table rows_test
  4. (
  5. user_id character varying(10),  --用户idprod_id character varying(10),  --产品idsale_cnt numeric(10,0)          --销售数量);
复制代码
2、测试用例

  1. insert into rows_test values('AAA','pd_1',2),
  2. ('AAA','pd_2',5),
  3. ('BBB','pd_1',1),
  4. ('BBB','pd_2',2),
  5. ('BBB','pd_3',3),
  6. ('CCC','pd_1',3),
  7. ('CCC','pd_3',4),
  8. ('DDD','pd_1',2),
  9. ('DDD','pd_3',4);--梧桐数据库与GBase数据插入语法相同
复制代码
三、排序类窗口函数

1、简介

  排序类窗口函数常用的有 row_number()、rank()、dense_rank();

2、函数使用

  以产物 ‘prod_1’ 的贩卖数量对用户进行排名,分别使用上述函数实现:
梧桐数据库与GBase数据库语法相同,不做重复赘述
  1. select *,row_number() over(partition by prod_id order by sale_cnt desc) row_id
  2. from rows_test ;select *,rank() over(partition by prod_id order by sale_cnt desc) rank_id
  3. from rows_test ;select *,dense_rank() over(partition by prod_id order by sale_cnt desc) dense_rank_id
  4. from rows_test ;
复制代码
梧桐数据库执行结果






GBase 执行结果



如上结果:
row_number() 会为每一行赋予一个整数不会跳过,当排序条件相同时,会随机一行排序;
rank()在排序条件相同时会赋予相同的值,下一个值会跳过;
dense_rank()在排序条件相同时会赋予相同的值,下一个值会接上一个;
四、统计类窗口函数

  统计类窗口函数常用的有 count()、sum()、avg()、max()、min() 等,其效果与聚合函数相同,详细如下:

示例:
  1. select *,sum(sale_cnt) over (partition by user_id),count(prod_id) over (partition by user_id),avg(sale_cnt) over (partition by user_id),max(sale_cnt) over (partition by user_id),min(sale_cnt) over (partition by user_id)from rows_test
复制代码
示例表明:

梧桐数据库测试结果如图:







五、总结

  对比梧桐数据库与GBase数据窗口函数的语法及使用基本相同,其制止了使用子查询或连接,可以显着提高查询性能;提供了对数据进行灵活分析的能力,可以轻松顺应差别的数据分析需求,增强了数据的分析能力;
  窗口函数的应用场景也非常广泛,可以用于各种数据分析和处理使命;例如通过排序类函数可以计算套餐销量top;地市、区县业务发展情况的top等;汇总、累计类函数可以统计用户出账等收入分析。


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 IT评测·应用市场-qidao123.com技术社区 (https://dis.qidao123.com/) Powered by Discuz! X3.4