c语言sscanf函数的用法是什么
301
2022-08-24
Over函数初探
这几天为了快速的提高csdn上的等级分,也开始回答和关注开发这块的问题了,在开发的sql问题中,经常看到一些sql语句中出现over这样的函数,而且把一个非常复杂的sql语句竟然一些浓缩的很短,马上激起了学习的兴趣,在网上搜了几个简单的例子,自己开始试起来,试了试几个基本的用法。记下来以后便于查询。
首先over是一个有统计功能的函数,一般我们如果把统计的结果放到没一行的话,这时候都需要用子查询才能办到,比如一个简单的例子。我们想在记录的最后加上一个总数的column,没有了解over前,我就是用子查询来做了,用一个子查询查出所有记录的总和,和原来的表关连一下据OK了。有了over就简单的多,这里并没有研究其性能,只是做功能性的研究。一个sum(columnname) over()就搞定了。
over还提供了partition by XXX order by xxxx的功能,
更增大了over的功能partition by 有group的功能,进行分组, order by是排序,可以和row_num() 一起使用。
比如例子数据SQL> select lxid, name, cnt from t05;
LXID NAME CNT———- ——————– ———-1 红文具盒 22 铅笔 23 圆珠笔 24 蓝文具盒 23 圆珠笔13 圆珠笔23 圆珠笔33 圆珠笔41 红文具盒 12 铅笔 23 圆珠笔 3
LXID NAME CNT———- ——————– ———-4 蓝文具盒 43 圆珠笔 32 铅笔 24 蓝文具盒 41 红文具盒 1
已选择16行。
SQL> select lxid, name, count(1) over(partition by lxid) count, sum(cnt) overrtition by lxid) sum, row_number() over(partition by lxid order by name) row_from t05 where name not like ‘%1′;
LXID NAME COUNT SUM ROW_NO——&am p;mdash;- ——————– ———- ———- ———-1 红文具盒 3 4 11 红文具盒 3 4 21 红文具盒 3 4 32 铅笔 3 6 12 铅笔 3 6 22 铅笔 3 6 33 圆珠笔 6 8 13 圆珠笔 6 8 23 圆珠笔 6 8 33 圆珠笔2 6 8 43 圆珠笔3 6 8 5
LXID NAME COUNT SUM ROW_NO———- ——————– ———- ———- ———-3 圆珠笔4 6 8 64 蓝文具盒 3 10 14 蓝文具盒 3 10 24 蓝文具盒 3 10 3
已选择15行。
可以看到,这样的功能比确实简化了用子查询的方式。
继续关注此方面的知识,并保持更新。
===============================================================
Inthirties关注Oracle数据库 维护,优化,安全,备份,恢复,迁移,故障处理
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~