暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片
大数据与数据仓库新特性.pdf
105
20页
1次
2024-03-28
5墨值下载
Oracle Database 21c 中旨在提高大数据和数据仓库工作负载性能的增强功能。包括在组内记
Window GROUPS EXCLUDE table
WINDOW CHECKSUM
SKEWNESS_POP SKEWNESS_SAMP
KURTOSIS_POP KURTOSIS_SAMP 聚合函数来衡量数据。
实验 1:使用按位聚合函数
按位聚合函数 SQL 中支持直接按位类型进行处理通过消除不必要的数据移动和充分利用
其他数据库功(如并行处),这些新函数可以提高整体查询性能。
在这个实验中,将为您介绍如何在组内记录的位级上使用新的 BIT_AND_AGGBIT_OR_AGG
BIT_XOR_AGG 位聚合函数。BIT_AND_AGGBIT_OR_AGG BIT_XOR_AGG
位和、按位或和按位异或的操作结果。这些聚合可以对单个数字列或表达式执行运算。按位
聚合操作的返回类型总是一个数字。
按位 AND 函数
按位 AND 运算是一种二进制运算,它取两个相等长度的二进制数,并对每一对“对应的位”
进行逻辑与(AND运算。如果比较位置的两个值都是 1,则二进制表示结果中的值是 1
否则结果 0。对两个数字应用 BIT_AND_AGG 函数。下面示例中,数值 2 对应二进制 10
数值 3 对应二进制 11于是对于 2 3 使用 BIT_AND_AGG得到的二进制结果为 10对应
十进制数 2,所以下面的结果为 2
SQL> WITH x AS (SELECT 2 c1 FROM dual UNION ALL SELECT 3 FROM dual)
SELECT BIT_AND_AGG(c1) FROM x;
BIT_AND_AGG(C1)
---------------
2
按位 OR 函数
如果您已经掌握了上面的按 AND 函数,那么按位 OR 函数也很容易理解,如果一对“位值”
中有一个值为 1,结果就为 1,否则为 0。因此对于下面的例子,2 的二进制值为 10,3 的二
进制值为 11于是按位 OR 函数处理后的结果为二进制值 11对应十进制值 3如果您对上
面的说明不能很好地理解,建议您拿出纸笔,在纸上写出上面的算式,就会一目了然。
SQL> WITH x AS (SELECT 2 c1 FROM dual UNION ALL SELECT 3 FROM dual)
SELECT BIT_OR_AGG(c1) FROM x;
BIT_OR_AGG(C1)
--------------
3
按位 XOR 函数
这个函数可以用来检查对应“位”上的值是否相同,如果相同返回 0,否则返回 1。对于十
进制的 2 3,使用 XOR 数,首先将它们转换为二进制的 10 11,因为第一位都是 1
所以 XOR 函数计算的结果为 0,第二位一个是 0 一个是 1,所以 XOR 得到的计算结果为 1
最终结果为二进制 01,对应十进制 1
SQL> WITH x AS (SELECT 2 c1 FROM dual UNION ALL SELECT 3 FROM dual)
SELECT BIT_XOR_AGG(c1) FROM x;
BIT_XOR_AGG(C1)
---------------
1
实验 2:使用增强分析函数
在这个实验中将为您展示如何从 window 框架子句 GROUPS EXCLUDE 的新选项以及 table
表达式中的 window 子句中获得增强功能。
Window 框架的 GROUPS 子句
关于 Window 框架是一个很有趣的功能,就好像在打印记录的时候,有一个隐形的窗口,
过滑动窗口,仅对窗口内的数据进行计算与处理。让我们首先看看表中的原始数据
SQL> select * from trades order by tday;
ACNO TID TDAY TTYP AMOUNT TICK
---------- ---------- --------- ---- ---------- ----
123 1 07-APR-22 buy 1000 CSCO
123 1 07-APR-22 buy 400 JNPR
123 3 09-APR-22 buy 2000 SYMC
123 4 09-APR-22 buy 1200 CSCO
123 5 09-APR-22 buy 500 JNPR
123 6 11-APR-22 buy 200 CSCO
123 7 11-APR-22 buy 100 CSCO
123 9 12-APR-22 buy 400 JNPR
123 10 12-APR-22 buy 200 GOOG
123 11 12-APR-22 buy 1000 JNPR
123 12 12-APR-22 buy 4000 JNPR
123 13 15-APR-22 buy 2000 HPQ
12 rows selected.
现在我们想做这样的统计,按照 ACNO 分组(当前数据表中,只有 ACNO=123 的一组信息,
您可以添 ACNO 为其他的记录来观察语句生成的不同结果),然后按照 TDAY 升序排序,
统计以当前记录位置算起,前三行及当前行的 AMOUNT 总和。
of 20
5墨值下载
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

关注
最新上传
暂无内容,敬请期待...
下载排行榜
Top250 周榜 月榜