按位 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 总和。
评论