当前位置:首页 > 日记 > 正文

Oracle开发分析功能(顶部/底部,第一/最后,ntile)

Oracle开发分析功能(顶部/底部,第一/最后,ntile)
1。空值安排:

在这篇文章中等级,dense_rank和row_number由Oracle开发什么如果在设置数据空值
复制代码如下:SQL >选择region_id,customer_id,

和(customer_sales)cust_sales,

金额(金额(customer_sales))在(分区region_id)ran_total,

等级()在(分区region_id)

为了总结(customer_sales)降序)等级

从user_order

集团通过region_id,customer_id;

region_id customer_id cust_sales ran_total秩

离开

一千零三十一亿六千二百三十八万九千零一十一

十万二千六百一十八兆零八百九十四亿九千六百二十三万八千九百零一

十万二千七百一十三兆二千二百七十四亿七千六百二十三万八千九百零一

十万三千零一十二兆一千六百八十五亿八千六百二十三万八千九百零一

十万二千八百九十八兆六千九百六十四亿六千二百三十八万九千零一十五

十万二千九百九十兆三千三百八十三亿六千二百三十八万九千零一十六

我们看到,有一个记录的cust_total字段的值为空,但它是放在第一位!显然这是不合理的,因此我们重新调整我们的排名策略,看看下面的语句:
复制代码如下:SQL >选择region_id,customer_id,

和(customer_sales)cust_total,

金额(金额(customer_sales))在(分区region_id)reg_total,

等级()在(分区region_id)

为了总结(customer_sales)DESC nulls last)等级

从user_order

集团通过region_id,customer_id;

region_id customer_id cust_total reg_total秩

离开

十万二千六百一十八兆零八百九十四亿九千六百二十三万八千九百零一

十万二千七百一十三兆二千二百七十四亿七千六百二十三万八千九百零一

十万三千零一十二兆一千六百八十五亿八千六百二十三万八千九百零一

十万二千八百九十八兆六千九百六十四亿六千二百三十八万九千零一十四

十万二千九百九十兆三千三百八十三亿六千二百三十八万九千零一十五

一千零三十一亿六千二百三十八万九千零一十六

绿色亮点,空最后/第一告诉Oracle在列表末尾的空值。

注意是空,不空。

二、顶部底部/ n查询:

在日常的生产工作中,我们经常遇到这样的一个问题:找到客户的前5名,找前10名销售人员等等。这对我们来说是个很简单的问题:

{ 1 }找出全部订单中的前3名最大客户:
复制代码代码如下:

从region_id(选择,

customer_id,

和(customer_sales)cust_total,

等级()()在(以金额(customer_sales)DESC nulls last)等级

从user_order

集团通过region_id,customer_id)

其中秩<3;

region_id customer_id cust_total秩

-----------------------------------------

九百二十五亿二千二百三十二万七千零三十一

八百一十七亿一千九百四十四万二千八百一十二

七百一十四亿一千九百二十九万七千七百四十三

SQL >

{ 2 }找出每个地区前3名客户中的前3名:
复制代码代码如下:

从region_id(选择,

customer_id,

和(customer_sales)cust_total,

金额(金额(customer_sales))在(分区region_id)reg_total,

等级()在(分区region_id)

为了总结(customer_sales)DESC nulls last)等级

从user_order

集团通过region_id,customer_id)

其中秩<3;

region_id customer_id cust_total reg_total秩

离开

五万四千一百八十七兆八千二百七十五亿五千五百八十五万六千四百一十一

五万二千一百二十二兆四千九百九十二亿五千五百八十五万六千四百一十二

五万五千一百一十六兆九千九百二十六亿五千五百八十五万六千四百一十三

六万六千一百七十八兆八千八百三十六亿六千三百零七万七千六百六十一

六万九千一百二十兆八千九百五十九亿六千三百零七万七千六百六十二

六十一万零一百一十九兆六千七百四十八亿六千三百零七万七千六百六十三

七十一万四千一百九十二兆九千七百七十四亿六千八百六十八万四千九百五十一

七十一万三千一百三十一兆零四百三十四亿六千八百六十八万四千九百五十二

七十一万五千一百二十五兆五千五百九十一亿六千八百六十八万四千九百五十三

八十一万七千一百九十四兆四千二百八十一亿六千八百五十四万七千三百一十一

八十二万零一百四十一兆三千七百二十二亿六千八百五十四万七千三百一十二

八十一万八千一百二十五兆三千八百四十亿六千八百五十四万七千三百一十三

九十二万五千二百二十三兆二千七百零三亿六千七百三十九万三千七百四十一

九十二万三千一百二十二兆四千九百九十二亿六千七百三十九万三千七百四十二

九十二万四千一百二十二兆四千九百九十二亿六千七百三十九万三千七百四十二

十万二千六百一十八兆零八百九十四亿九千六百二十三万八千九百零一

十万二千七百一十三兆二千二百七十四亿七千六百二十三万八千九百零一

十万三千零一十二兆一千六百八十五亿八千六百二十三万八千九百零一

选择18行。

三,第一/最后一级查询:

想象一下:找到一个拥有最大和最少的订单的客户。根据我们所学的知识,这至少需要2个查询。第一个查询是为了得到第一个位置而下降的,第二个查询是为了得到姓氏而按顺序排列的。因为排名函数只告诉我们排名的结果,它不能自动筛选我们的结果。

幸运的是,Oracle在置换函数之外为我们提供了两个额外的函数:第一,最后一个函数,专门用来解决这个问题:
复制代码如下:SQL >选择min(customer_id)

保持(dense_rank第一阶的总和(customer_sales)降序)第一,

min(customer_id)

保持(dense_rank最后订单金额(customer_sales)降序)上

从user_order

集团通过customer_id;

第一个

雇佣

三百一十一

这里有些地方看起来很可疑:

(1)为什么在这里使用MIN函数

这东西是什么东西

(3)拳头/最后做什么

(4)dense_rank和dense_rank之间的区别是什么(),它可以变成排名

首先,回答第一个问题:min函数的作用是确保当有多个第一个/最后一个案例时,返回唯一的记录。如果我们去掉它,会发生什么
复制代码代码如下:SQL >选择保持(dense_rank第一阶的总和(customer_sales)降序)第一,

保持(dense_rank最后订单金额(customer_sales)降序)上

从user_order

集团通过customer_id;

选择保留(dense_rank第一阶的总和(customer_sales)降序)第一,

*
第1行错误:

ora-00907:缺少右括号

然后再看第二个问题:保管有什么用根据以上结果,我们已经知道Oracle只保留了2个数据作为排名的结果,这就是保存的作用,告诉Oracle保持与保存状态一致的记录。

那么什么是合格记录呢这是第三question.dense_rank是告诉Oracle配置策略,和第一/最后告诉的条件,最终筛选。

第四个问题:如果我们改变dense_rank排名呢
复制代码如下:SQL >选择min(region_id)

保持(排名第一的订单金额(customer_sales)降序)第一,

min(region_id)

保持(排名最后的总和(customer_sales)降序)上

从user_order

集团通过region_id;

选择最小(region_id)

*
第1行错误:

ora-02000:失踪的dense_rank

四。询问级别:

现在我们已经看到了如何通过Oracle的分析功能获得顶部/底部n、第一个和最后一个记录,有时我们得到如下需求:找到总订单的前1名/ 5名的客户。

是不是很熟悉,不是吗我们立即想到的方法提到的第二点,但秩函数只有当我们不知道排名,排名相对位置在整体排名中,介绍了ntile另一分析功能,下面我们就以上述需求为例说明:
复制代码代码如下:SQL >选择region_id,

customer_id,

(5)在ntile(订单金额(customer_sales)降序)直到

从user_order

集团通过region_id,customer_id;

region_id customer_id瓦



一万零三百一十一

九千二百五十一

一万零二百六十一

六百六十一

八千一百八十二

五百二十二

九千二百三十三

六百九十三

七千一百一十三

五百三十四

六百八十四

八千一百六十四

六百七十五

一万零二百九十五

五百一十五

直到函数计算的在记录集的排序每个记录的比例。我们看到所有的记录被分为5个级别。如果我们只需要以前的1 / 5的记录,我们只需要截取1瓦的记录。如果我们需要一个前25%名的记录(即1/4),那么我们只需要设置ntile(4)。

以上是Oracle中前几篇、最后几篇、最多篇和层次查询的内容。我希望我们能给你一个参考,希望你能得到很多支持。

相关文章

PS图象处理软件是一个可爱的大头Q

PS图象处理软件是一个可爱的大头Q

是一个,图象,处理软件,大头,可爱,随着Q版《大头》的流行,越来越多的人也开始喜欢它。今天在这里,我们将教你如何使用PS图象处理软件自己做的Q版大头像很容易。 设置初步场景 点击菜单栏上的文件,具有,新,创建一个新的空白文档,输入姓名,Q版,大头,设…

如何在WPS表格插入超链接的WPS表格

如何在WPS表格插入超链接的WPS表格

教程,超链接,表格,如何在,电脑软件,您知道如何在WPS表单中插入超链接,并让小编辑器告诉您如何将WPS表插入到超链接中吗。 在WPS表中插入超链接的方法: 首先,演示如何插入超链接,现在我们在桌面上构建一个WPS表。 鼠标左键双击后,输入文件的编…

PS图象处理软件梦幻般的心脏形的影

PS图象处理软件梦幻般的心脏形的影

心脏,图象,处理软件,梦幻般,电脑软件,本教程在思维方面非常独特。作者制作了一个美丽的心形图案,再加上色彩和装饰元素,效果非常棒,制作的主要工具是路径和笔刷,可能会有点难以绘制,而且需要用心形画出来,教程的效果只是一个参考,你也可以制作其他…

js删除数组中的某些项目或项目(推荐

js删除数组中的某些项目或项目(推荐

项目,删除,推荐,组中,电脑软件,1和JS中的拼接方法 拼接(索引,框,{ })注释:此方法更改原始数组。 拼接有3个参数,它也可以用来替换数组中的一些值。 索引:数组开始下标的值:替换/删除长度项:替换,如果操作被删除,则该项为空。 如:ARR = {'a',B,C,D } …

通过Excel共享工作簿提交教学计划

通过Excel共享工作簿提交教学计划

提交,教学计划,工作,电脑软件,Excel,放学后,老师有许多事情要做,但最重要的是要提交教案,以便他们随时知道什么时候教和了解教学计划的进度,我通过Excel的共享工作簿提交教学计划,这是省时省力的(不打印出来)。 编辑计划表模板 目的:配合编辑模板…

AI如何绘制一个饮料杯的图标

AI如何绘制一个饮料杯的图标

图标,绘制,电脑软件,AI,AI简单地画出饮料杯的图标。 软件名称:Adobe Illustrator CS6(AI CS6)简化绿色中文版(32位+ 64位)软件大小:205mb更新时间:2014-05-11 1。在Ai软件中,创建一个新的800 * 800文档,选择一个矩形工具,绘制一个矩形图形,填充颜色,…

在任意单元格中显示当前页号

在任意单元格中显示当前页号

显示,格中,单元,当前页,电脑软件,当我们打印出一个Excel多页的报告中,我们需要指定的页数,一个细胞的数据的位置。如何实现它变成具有菜单;名称具有;定义;命令,然后定义一个名称的文本框中(如PageNumber在加入后),在输入参考位置;=如果(误差(匹配(行)、GE…

在一个小的新签名夫妇的签名上

在一个小的新签名夫妇的签名上

夫妇,电脑软件,一些签名可以给人们带来新鲜和新鲜的味道。对于小清新,你还记得什么样的签名下面,请欣赏小清新的签名推荐萧边。 论小清新签名的选择: 1)你对我说要很小,对别人要慷慨,因为你爱我。 2)我站在天空中,你在天空中看到,你只需要抬头看。…

绝望的签名经典签名

绝望的签名经典签名

绝望,经典,电脑软件,你还记得是什么让你绝望的吗你对绝望还记得什么样的签名让我们享受绝望的萧边推荐的签名。 绝望中的签名精选: 1)经常悲伤和失望,但什么也不说。 2)我可以微笑着面对它,这只是对爱情游戏的一种误解。 3)乞讨一点温暖,但一壶…

PS如何给添加墨迹

PS如何给添加墨迹

墨迹,电脑软件,PS,做图画书或杂志的插图时,你会看到使用油墨叠加图片的仿古效果。这里介绍了一个简单的方法。 软件名称:Adobe PS图象处理软件8全绿色中文版软件大小:150.1mb更新时间:2015-11-04 1,制作或找一张墨水图片,一张需要展示的图片。 …

Word如何生成对引用词常见问题的自

Word如何生成对引用词常见问题的自

引用,常见问题,电脑软件,Word,写论文的时候,有很多的引用,引用的控件引用是本文的一个很复杂的事,与参考序列中发生的变化去改变他们,让萧边如何自动生成引文参考方法的话给你。 单词引用步骤如下所示: 01打开一个需要排版的纸,我们使用一个没…

ppt如何提取ppt文本制作教程

ppt如何提取ppt文本制作教程

文本,制作教程,电脑软件,ppt,在日常办公工作中,我们可能需要从PPT中提取文本到word格式文档中。那么我们如何从PPT中提取文本呢让我们告诉你如何从PPT中提取文本。 PPT文本提取方法: 你可以使用PowerPoint的文件mdash;mdash;送microsoftword…