精华内容
下载资源
问答
  • SELECT Customer,SUM(OrderPrice) FROM Orders GROUP BY Customer HAVING SUM(OrderPrice)<2000 ...使用了having子句,想计算符合条件的记录数。 用count(*)是计算每个Customer的组内数量。
  • select * from (select actno,amt from t_chnl_log order by dbms_random.random) where sum(amt) 现在报错在 sum(amt) 上 , ORA-00934,貌似不能sum随机取的数据?? 请问我如何才能用sum(amt)作为条件?...
  • ORACLE统计计算

    2019-07-26 11:10:39
    最近遇到了对一组数据进行统计计算的需求,包括平均值、总和、最大值、最小值、标准差等,代码如下: SELECT T.BUSIDATE "dimen", SUM(T.BUSI_OCCURRENCE) "sum", TRUNC(AVG(T.BUSI_OCCURRENCE), 1) "avg", /*...

    最近遇到了对一组数据进行统计计算的需求,包括平均值、总和、最大值、最小值、标准差等,代码如下:

    SELECT T.BUSIDATE "dimen",
           SUM(T.BUSI_OCCURRENCE) "sum",
           TRUNC(AVG(T.BUSI_OCCURRENCE), 1) "avg", /*平均值*/
           TRUNC(STDDEV(T.BUSI_OCCURRENCE), 1) "stdev", /*样本标准差*/
           TRUNC(STDDEV_POP(T.BUSI_OCCURRENCE), 1) "stdevp", /*总体标准差*/
           TRUNC(STDDEV_SAMP(T.BUSI_OCCURRENCE), 1) "stdevs",
           MAX(T.BUSI_OCCURRENCE) "max",
           MIN(T.BUSI_OCCURRENCE) "min"
          FROM SRF_DATAMODEL_RESULT T
          WHERE
              T.BUSI_OCCURRENCE IS NOT NULL
                  AND T.MODELID = '10000021'
          GROUP BY T.BUSIDATE

    ORACLE中有三种常用的标准差方法:STDDEV、STDDEV_POP和STDDEV_SAMP               

    STDDEV_POP                                                STDDEV 、STDDEV_SAPM                     

     

    STDDEV返回样本标准差表达式 ,你可以用它作为聚合或分析函数。它不同于STDDEV_SAMP函数,当只有一行数据时,STDDEV返回0, 而STDDEV_SAMP返回null值。而STDDEV_POP用来计算总体标准差,用的比较多的是STDDEV

    展开全文
  • 我的sql语句本来就计算好了不同字段的记录数,只需要再统计一下占总记录数的百分比即可,也就是在select后加上这段代码: 100 * round( COUNT( * ) / SUM( COUNT( * )) OVER (), 4 ) || '%' percent 这个语句中用...

    一、方法

    我的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
    

    在这里插入图片描述

    展开全文
  • 计算总和的占比 需求描述 需求:计算EMP表按照deptno分组,计算每组的SAL总和与所以记录总和中的占比 解决方法:通过每组SUM(SAL)窗口函数再除以记录总和来实现. 注: 数据库数据集SQL脚本详见如下链接地址 ...

                               计算组总和的占比

    需求描述

    需求:计算EMP表按照deptno分组,计算每组的SAL总和与所以记录总和中的占比

    解决方法:通过每组SUM(SAL)窗口函数再除以记录总和来实现.

    注: 数据库数据集SQL脚本详见如下链接地址

    员工表结构和数据初始化SQL脚本

    SQL代码

    -- Sql Server、Oracle:
    
    SELECT DISTINCT deptno,SUM(SAL)OVER(PARTITION BY deptno) AS sum_num,SUM(SAL)OVER() AS sum_total,
    
    CAST(ROUND(SUM(SAL)OVER(PARTITION BY deptno)/SUM(SAL)OVER(),2)AS DECIMAL(10, 2)) AS group_percent
    FROM emp

    执行结果

    -- Sql Server:
    SELECT deptno,CAST(SUM(SAL)/(SELECT SUM(SAL) FROM EMP)AS DECIMAL(10, 2)) AS group_percent
    FROM EMP
    GROUP BY deptno
    
    -- Mysql:
    SELECT deptno,ROUND(SUM(SAL)/(SELECT SUM(SAL) FROM EMP), 2) AS group_percent
    FROM EMP
    GROUP BY deptno
    

    展开全文
  • Oracle中的一些常用的计算函数,sum,mod,trunc,nvl,avg

    Oracle中的一些常用的计算函数,sum,mod,trunc,nvl,avg

    总和

    sum

    SELECT sum(a.nendo) from AMST_KAMOKU a

    取余

    mod

    //计算是否是任年
     SELECT a.nendo,MOD(a.nendo,4) from AMST_KAMOKU a

    这里写图片描述

    四舍五入

    trunc

    trunc (数值,从第几位开始四舍五入)
    SELECT a.nendo,trunc(a.nendo,-1),trunc(a.nendo,-2),trunc(a.nendo,0),trunc(a.nendo,1),trunc(a.nendo,2),trunc(a.nendo,3) from AMST_KAMOKU a

    这里写图片描述

    判断是否为空

    nvl,如果有数据就直接用,没有就用后面设定的数据

     SELECT a.tax_kbn,nvl(a.tax_kbn,'000') from AMST_KAMOKU a

    这里写图片描述

    平均

    avg,用于计算平均值

    //计算平均值
      SELECT AVG(a.nendo) from AMST_KAMOKU a
    展开全文
  • Oracle 成本计算公式

    2012-06-05 21:09:33
    开始专门从事数据库性能优化快1个月了。从今天开始,我决定要好好学习《Cost-Based Oracle Fundamentals》。加油!先介绍下成本计算公式,这个公式会影响整个学习过程~Cost = ( #...
  • 计算某列的总和 需求描述 需求:按照部门编号分组找出EMP表中工资总和,同时返回出deptno 解决方法:通过聚合函数SUN结合GROUP BY来完成. 注: 数据库数据集SQL脚本详见如下链接地址 员工表结构和数据初始化SQL...
  • 计算组内总和的占比 需求描述 需求:计算EMP表按照deptno分组,计算SAL在每组总和中的占比 解决方法:通过每行的SAL除以每组的SUM(SAL)来实现. 注: 数据库数据集SQL脚本详见如下链接地址 员工表结构和数据...
  • desc:写一个PL/SQL块,计算两个数字的和与差之商 -- ========================================== SQL > set serveroutput on SQL > Declare 2 a int : = 100 ; 3 b int : = 200 ; 4 c number...
  • 有一张表tbinfo,关键字段部门dname,发布时间ctime 数据类似如下:   ; height: 82px;" border="0"> <td>dname ...<p>select to_char(ctime,'yyyymm') ym,dname,count(*) infocount from tbinfo group by to_char...
  • oracle查询某一个字段的数量总和

    千次阅读 2016-11-16 10:37:00
    select count(*) from (select count(*) from 表名称 group by 多种数据量 ) 表名; 举个栗子: 比如说我有一个数据类型的字段, 里面有很多种的数据类型。 而且每个数据类型都有近些年的数据。...
  • 最近遇到一个数据库查询问题,需要按指定的日期查询数据,并将其中某项的值相加,得到总和。这个总和是我要的数据。 刚开始的思路是这样的: select to_char(数据库中的日期,'yyyymm') as ymd , coalesce(我...
  • Oracle 统计某一年中的1-12个月的数据总和(非常实用)
  • Oracle

    千次阅读 2018-04-15 22:05:57
    什么是oracle?Oracle公司,以数据库起家的,收购了sun【java mysql数据库】Oracle数据库是其中的产品之一。也是第一个提出sql命令的数据库。Oracle提供了数据的解决方案。 解决十万百万级数据而Windows 系统无法...
  • [code="sql"]select t.examinee_id, t.batch_id, t.signcompany, t.signcompany_code, t.signposition, t.signposition_code, (select count(*) from ti_examinee_...
  • 最近在项目报表中需要一个查询语句,用来统计符合某一列条件的其它几列的个数 比如有下面一个表结构: 需要在列D后面增加一列,统计在列A不为空,并且列B、C、D不为空的个数 经过自己试验,查找帮助,总算实现了...
  • oracle实现累加,累计百分比计算

    千次阅读 2015-01-20 17:49:44
    最近做数据分析,需要用到累加功能,发现强大的oracle还真有,用over(order by field) 例子: 数据表中最后一列就是累加的效果 累加sql: select t.acc_pedal_pos,count(*) num,sum(count(*)) over(order by t....
  • 计算ORACLE使用内存方法(on AIX)

    千次阅读 2014-07-18 13:58:17
    本博客MOS NOTE(Doc ID 123754.1): AIX: Determining Oracle Memory Usage On AIX (Doc ID 123754.1) Applies to: Oracle Database - Enterprise Edition - Version 8.1.7.0 and later IBM AIX on POWER Systems
  • 有两张表,一张组织机构表(存父级与子级组织机构关系),一张登录统计表(存组织机构登录日志),表结构如下图: 因用户登录时统计登录日志只有当前组织机构的登录信息,没有被包含在父级登录信息中,而需求为统计...
  • select sysdate,add_months(sysdate,12) from dual; --加1年select sysdate,add_months(sysdate,1) from dual; --加1月select sysdate,to_char(sysdate+7,'yyyy-mm-dd HH24:MI:SS') from dual; --加1星期...
  • 数据库如何用Oracle RATIO_TO_REPORT计算...传统上,Oracle计算百分比的方法是在总计报告的子查询中使用SUM函数总计报告,然后把那个结果放到细节表中相除来计算百分比。你还可以用一个子查询作为SELECT语句表达式:
  • oracle

    2008-09-04 10:10:00
    1. Oracle安装完成后的初始口令? internal/oracle sys/change_on_install system/manager scott/tiger sysman/oem_temp2. ORACLE9IAS WEB CACHE的初始默认用户和密码? administrator/administrator3. oracle ...
  • ORACLE

    2008-03-25 16:54:00
    ORACLE是一种适用于大型、中型和微型计算机的关系数据库管理系统,它使用SQL(Structured guery language)作为它的数据库语言。 SQL主要包括数据定义、数据操纵(包括查询)和数据控制等三方面功能。SQL是一种非过程化...
  • 由于项目中需要直接计算百分比数据查阅资料后解决问题,特此记录一波
  • 近来项目中遇到需要查询两个表中某几个字段值的总和的问题,整理出来以备后用。两个表中字段类型和名称完全一致。表 T1abc011102220122表 T2abc01330255假如表中数据如上表格,我想想查询a='01'时b,c两个字段的总和...
  • Oracle高级查询

    千次阅读 2016-11-06 23:49:10
    概述高级查询在数据库的开发过程中应用广泛,本博文将从分组查询、多表查询和子查询三个方面介绍Oracle的高级查询,最后典型案例的应用。sql窗口修改已执行的sqled表示编辑上个sql / 表示执行上个sql分组查询分组...
  • Oracle DB Time 解读

    万次阅读 2017-06-21 19:04:21
    Oracle DB Time是Oracle数据库在时间维度上剖析性能的一个重要指标,通过逐级分解该指标,定位到浪费资源或者资源争用的首要事件上,从而通过减少等待以及最小化每个请求的使用资源来达到优化的目的。本文主要讲述...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 13,393
精华内容 5,357
关键字:

oracle计算总和