oracle计算比例,某字段占总数的百分比

oracle计算比例,某字段占总数的百分比,第1张

一、方法

我的sql语句本来就计算好了不同字段的记录数,只需要再统计一下占总记录数的百分比即可,也就是在select后加上这段代码:

100 * round( COUNT( * ) / SUM( COUNT( * )) OVER (), 4 ) || '%' percent 

这个语句中用到的几个sql函数讲解:
1、ROUND() 函数 :

用于把数值字段舍入为指定的小数位数,即保留几位小数。round(a,b) a 表示要舍入的字段;b规定要返回的小数位数。详细说明:SQL ROUND() 函数

2、COUNT() 函数

返回匹配指定条件的行数。COUNT(*) 函数返回表中的记录数。详细说明:SQL COUNT() 函数

3、SUM() 函数

SUM 函数返回该列数值的总和。结合上面的COUNT() 函数说明,这里的 sum( count(*) ) 即为 count 这一列数值的总和,也就是总记录数。详细说明:SQL SUM() 函数

4、OVER() 函数

以前使用聚合函数必须分组,即便没有group by 子句,也是默认将表中所有的数据分成了1组,来聚合。通过使用over子句可以在不分组的情况下实现聚合运算,在查询结果集中既包含基础行的数据也包含聚合函数的值。(可以把over()子句理解成是“后台运行的数据”,只是为了 “用一下” 聚合函数或者是排名函数,并不影响实际显示的数据。在后台提供数据。)当over()子句与聚合函数一起使用时,可以直接写count(*)over(),不在over()子句中进行任何分区,表示把整个表分为一个区在这个句子中,如果去掉 OVER() 函数,会提示错误: ORA-00937: 不是单组分组函数详细说明:
-sql语句关键字over的作用及用法
sql语句关键字over的作用及用法2 二、参考文章

参考文章:oracle计算比例,某字段的百分比
参考文章内容:

在oracle统计中,常常需要统计某些字段的占比,这里记录一下。
原始数据如下:

当需要知道不同工作的职工的占比时,即统计job列各自占总数的百分比。

SELECT  JOB,COUNT( * ) COUNT_JOB,
  100 * round( COUNT( * ) / SUM( COUNT( * )) OVER (), 4 ) || '%' percent 
FROM
  EMP t
GROUP BY
JOB

即可获得如下结果:

当需要对某些特定值统计时,如工资大于2000的占比。
需要将特定值筛选出来然后与总数相除。这里就需要用到case when进行判别

SELECT (CASE
       WHEN T.SAL > 2000 THEN
        '工资大于2000'
       WHEN T.SAL <= 2000 THEN
        '工资不大于2000'
      END) sal, COUNT(*), 100 * ROUND(COUNT(*) / SUM(COUNT(*)) OVER(), 4) || '%' PERCENT
 FROM EMP T
GROUP BY CASE
          WHEN T.SAL > 2000 THEN
           '工资大于2000'
          WHEN T.SAL <= 2000 THEN
           '工资不大于2000'
         END

欢迎分享,转载请注明来源:内存溢出

原文地址:http://outofmemory.cn/sjk/991768.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-21
下一篇2022-05-21

随机推荐

  • 2017年英国安格利亚鲁斯金大学怎么样

    安格利亚鲁斯金大学位于英格兰东部,有两个校区,分别在剑桥镇和切尔姆斯福特。该大学是一所新兴大学,具有先进的设备,1992年正式成为大学,在当地具有一定的影响力。学校致力于学生教育及知识更新,努力建立成

    2022-07-07
    300
  • 基尔大学是野鸡大学吗

    英国基尔大学是受教育部认证的正规学校,具体请咨询立思辰留学360顾问团队。基尔大学成立于1949年,于1966年,经英皇特许升为大学,为英国著名当代大学之一。大学位于英格兰中部,整个校园曾为俄沙皇公主

  • 2017年新加坡管理发展学院本科专业设置

    立思辰留学360介绍:新加坡管理发展学院成立于1956年,是新加坡声名卓著的优秀私立院校之一。MDIS由中国驻新加坡大使馆认证并且学历受到承认,也是新加坡EduTrust四年期正式认证。 新加坡管理发

    2022-07-07
    000
  • YMCA School 课程设置

    据立思辰留学360介绍,新加坡YMCA学校始建于1913年,是一所基督教全日制正规私立教育机构。在这98年的历程中,该校见证了数以万计的莘莘学子成功地完成了新加坡体制下的教育与培训。新加坡YMCA学校

    2022-07-07
    000
  • 2017年美国匹兹堡艺术学院入学要求

    匹兹堡艺术学院成立于1921年,为了适应当时的社会环境应运而生,起初以广告商业学为主导课程,后来经过不断发展,逐渐增开了其他课程,可授予学士学位、副学士学位,除了专业课的学习外,还开设一般通识课程,与

    2022-07-07
    000
  • 爱丁堡大学数学专业厉不厉害

    爱丁堡大学位于苏格兰的首府爱丁堡市,是成立于1583年的公立研究型大学,同时是英国第六古老的大学。爱丁堡大学每年收到约四万七千份申请,为全英第三受欢迎的大学。根据2011年QS世界大学排名,爱丁堡大学

    2022-07-07
    300
  • 2017年新加坡市场学院合作院校

    据立思辰留学360介绍:新加坡市场学院 (Marketing Institute of Singapore,简称 “MIS”) 成立于1973年,是拥有42年销售与市场营销经验的学术界权威。本学院是亚

    2022-07-07
    500
  • 新加坡会计学院CAT、ACCA奖学金

      新加坡会计学院(SAA-GE)隶属于新加坡特许会计师协会(ISCA),是新加坡唯一拥有半官方背景的会计学院,也是新加坡唯一一所连续9年获得ACCA“铂金级教育机构”称号的学院。学院专注于会计教育3

    2022-07-07
    300
  • 2017年普利茅斯大学与格拉摩根大学哪个好

      普利茅斯大学与格拉摩根大学都有自己的优势专业,具体请咨询立思辰留学360专业顾问团队,咨询电话:4008-941-360普利茅斯大学英国普利茅斯大学(Plymouth University)成立于

    2022-07-07
    100

发表评论

登录后才能评论

评论列表(0条)

    保存