![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
oracle
gonewithwind818
这个作者很懒,什么都没留下…
展开
-
Oracle ROW_NUMBER()、RNAK()、DENSE_RNAK()、NTILE()
一.ROW_NUMBER()用于數據排序,每條記錄一個序號,序號最大值等於記錄數,多用于分頁。二、RNAK()跳躍式排序,如排序值相同,則序號相同,下一個序號跳過並列的排名,如1、2、2、4這種。序號最大值等於記錄數。三、DENSE_RNAK()緊湊排序,如排序值相同,則序號相同,下一個序號緊隨排列,如1、2、2、3這種。序號最大值小于等於記錄數。四、NTILE()將有序結...原创 2019-07-15 12:19:43 · 130 阅读 · 0 评论 -
Oracle grouping()、grouping_id()、group_id()
1、grouping()参数只有一个,而且必须为group by中出现的某一列,表示结果集的一行是否对该列做了grouping。对于对该列做了grouping的行而言,grouping()=0,反之为1;2、grouping_id()参数可以是多个,但必须为group by中出现的列。Grouping_id()的返回值其实就是参数中的每列的grouping()值的二进制向量,例如如果g...原创 2019-07-12 13:34:57 · 3600 阅读 · 0 评论 -
Oracle rollup 、cube 、grouping sets
一、rollup假设有一个表test,有A、B、C、D、E共5列。如果使用group by rollup(A,B,C),首先会对(A、B、C)进行GROUP BY,然后对(A、B)进行GROUP BY,然后是(A)进行GROUP BY,最后对全表进行GROUP BY操作。roll up就是对选择的列从右到左以一次少一列的方式进行grouping直到所有列都去掉后的grouping(也就是全...原创 2019-07-12 13:34:05 · 159 阅读 · 0 评论 -
Oracle列转行unpivot
unpivot可以实现列转行,所转的列的字段类型必须一致SELECT STU_NAME, TERM, COURSE_MARK FROM (SELECT '罗飞' STU_NAME, '2001-2002' TERM, '90' 微积分, '88' 线性代数,...原创 2019-07-12 13:31:40 · 1225 阅读 · 0 评论 -
oracle行转列pivot
1、pivot的格式select from( inner_query )pivot(aggreate_function for pivot_column in ( list of values))order by ...;2、轉換單個列selectfrom (select month, prd_type_id, amo...原创 2019-07-12 13:30:10 · 173 阅读 · 0 评论 -
Oracle常用分析函数
一、概述1、分析函数是什么?Oracle从8.1.6开始提供分析函数,分析函数用于计算基于组的某种聚合值,是Oracle专门用于解决复杂报表统计需求的功能强大的函数,它可以在数据中进行分组然后计算基于组的某种统计值,并且每一组的每一行都可以返回一个统计值。2、分析函数和聚合函数的不同之处是什么?普通的聚合函数用group by分组,每个分组返回一个统计值,而分析函数采用partit...转载 2019-07-12 13:26:14 · 2105 阅读 · 0 评论 -
Oracle Exists和In
使用EXISTS,Oracle会首先检查主查询,然后运行子查询直到它找到第一个匹配项,这就节省了时间。Oracle在执行IN子查询时,首先执行子查询,并将获得的结果列表存放在一个加了索引的临时表中。在执行子查询之前,系统先将主查询挂起,待子查询执行完毕,存放在临时表中以后再执行主查询。 这也就是使用EXISTS比使用IN通常查询速度快的原因。1、select * from T1...原创 2019-07-12 13:22:31 · 367 阅读 · 0 评论 -
Oracle:Pivot 和 Unpivot 转多列并包含多个名称
Pivot1、准备数据create table t_demo(id int,name varchar(20),nums int); ---- 创建表 insert into t_demo values(1, '苹果', 1000); insert into t_demo values(2, '苹果', 2000); insert into t_demo values(3, '...原创 2019-07-15 13:44:12 · 643 阅读 · 0 评论 -
Oracle 本年、本季、本月、本周第一天及最后一天、年內第几周、月内第几周、年内第几天、当天是周几
一、本年、本季、本月、本周第一天及最后一天select trunc(sysdate, 'yyyy') year_begin, add_months(trunc(sysdate, 'yyyy'), 12) - 1 year_end, trunc(sysdate, 'Q') quarter_begin, add_months(trunc(sysdate, '...原创 2019-07-15 12:22:55 · 1265 阅读 · 0 评论 -
Oracle with as
WITH AS短语,也叫做子查询部分(subquery factoring),可以做很多事情,定义一个SQL片断,该SQL片断会被整个SQL语句所用到。一是提高了SQL语句的可读性,二是對于重複用到的SQL語句放到with as裡面,後面多次引用以提高效率。如果WITH AS短语所定义的表名被调用两次以上,则优化器会自动将WITH AS短语所获取的数据放入一个TEMP表里;如果只是被调用一...原创 2019-07-12 13:36:16 · 1478 阅读 · 0 评论