我是靠谱客的博主 香蕉大树,最近开发中收集的这篇文章主要介绍oracle12c不买会咋样,ORACLE 12c - “不是单一群体功能”,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一种方式做,这是使用如您所做的那样进行汇总查询,然后在最大程度上使用聚合函数。例如,使用该函数FIRST/LAST(和使用该SCOTT架构,EMP表用于说明):

select min(extract(year from hiredate)) keep (dense_rank last order by count(empno)) as yr,

max(count(empno)) as emp_count

from emp

group by extract(year from hiredate)

;

YR EMP_COUNT

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

1981 10

有两个问题与该溶液中。首先,许多开发人员(包括许多经验丰富的开发人员)似乎并不知道FIRST/LAST函数,或者不愿意使用它。另一个更严重的问题是,在这个问题中,可能会有几年的雇员人数相同,人数最多。问题要求必须比原始帖子更详细。第一名有关系时,期望的输出是什么?

以上查询返回最大雇佣人数达到时所有不同年份的最早值。将SELECT子句中的MIN更改为MAX,并且您将获得最近一年发生最多雇用人数的情况。但是,我们通常需要一个查询,在关系情况下,将返回全部与大多数雇员并列的年份。 不能用FIRST/LAST函数完成。

为此,一个紧凑的解决方案将为您的原始查询添加一个分析函数,按雇员数量对年份进行排名。然后在一个外部查询中筛选rank = 1的行。

select yr, emp_count

from (

select extract(year from hiredate) as yr, count(empno) as emp_count,

rank() over (order by count(empno) desc) as rnk

from emp

group by extract(year from hiredate)

)

where rnk = 1

;

或者使用max()解析函数子查询(而不是等级式解析函数)的SELECT子句中:

select yr, emp_count

from (

select extract(year from hiredate) as yr, count(empno) as emp_count,

max(count(empno)) over() as max_count

from emp

group by extract(year from hiredate)

)

where emp_count = max_count

;

最后

以上就是香蕉大树为你收集整理的oracle12c不买会咋样,ORACLE 12c - “不是单一群体功能”的全部内容,希望文章能够帮你解决oracle12c不买会咋样,ORACLE 12c - “不是单一群体功能”所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(70)

评论列表共有 0 条评论

立即
投稿
返回
顶部