精华内容
下载资源
问答
  • 统计考勤报表 oracle对多个列求和 sum() 函数
    千次阅读
    2020-05-15 15:35:47

    oracle数据库对test_table表的三个列count1,count2,count3求sum的两种sql,做个记录

    第一种

    select sum (case when count1 is not null then count1 when 
    count2 is not null then count2 when count3 is not null 
    then count3 else '0' end ) a from test_table



    第二种

    select sum(decode(count1,null,0,count1) +decode(count2,null,0,count2)
    +decode(count3,null,0,count3)) a from test_table


     

    更多相关内容
  • sum(case when t.type in ('A') then t.score else 0 end) wgtzb, sum(case when t.type in ('B','C') then t.score else 0 end) wgthb, sum(case when t.age > 40 then t.score else 0 end) thick40 from stu t

    1、条件求和

    例: 统计A类型总分数,B、C总分数,年龄大于15的总分

    
    select 
    sum(case when t.type in ('A') then t.score  else 0 end) wgtzb,
    sum(case when t.type in ('B','C') then t.score else 0 end) wgthb,
    sum(case when t.age > 15 then t.score  else 0 end) thick40
    from stu t
    

     

    2、显示百分比

    用decode判断,如果有 .52% 的结果,显示为 0.52%

    select
    decode(TRUNC(m.wgt / m.weight * 100),
                  0,
                  replace(round((m.wgt / m.weight) * 100, 2), '.', '0.'),
                  round((m.wgt/ m.weight) * 100, 2)) ||  '%' 
          from xxtable m

     

    展开全文
  • oraclesum求和

    千次阅读 2018-05-12 15:07:01
    1、按照区域编码分组查询区域编码、IPTV_NBR不为空的数量、ACC_NBR不为空的数量、所有用户数量SELECT AREA_CODE, SUM ( CASE WHEN IPTV_NBR IS NULL or IPTV_NBR = '' THEN 0 ELSE 1 END ), SUM ( CASE ...
    1、按照区域编码分组查询区域编码、IPTV_NBR不为空的数量、ACC_NBR不为空的数量、所有用户数量
    SELECT
    AREA_CODE,
    SUM (
    CASE
    WHEN IPTV_NBR IS NULL or IPTV_NBR = '' THEN
    0
    ELSE
    1
    END
    ),
    SUM (
    CASE
    WHEN ACC_NBR IS NULL or ACC_NBR = '' THEN
    0
    ELSE
    1
    END
    ),
    COUNT (*)
    FROM
    GAT_SQMS.GAT_SQMS_BAND_IPTV_VIEW
    GROUP BY
    AREA_CODE;




    2、使用sum条件查询
    查询IPTV_NBR不为空的数量
    SUM (
    CASE
    WHEN IPTV_NBR IS NULL or IPTV_NBR = '' THEN
    0
    ELSE
    1
    END
    )


    SUM里边使用CASE WHEN 语句,
    当IPTV_NBR IS NULL 为0,ELSE 为1
    展开全文
  • Oracle之--CASE WHEN语句

    2021-05-05 03:12:40
    使用CASE WHEN语句他统计各个年龄段人数SELECTSUM(CASE WHEN (TO_CHAR( SYSDATE, 'YYYY' ) - SUBSTR( t.INPUT_IDCARD, 7, 4 ) ) BETWEEN 20 AND 30 THEN 1 ELSE 0 END) AS "20-30岁",SUM(CASE WHEN (TO_CHAR( ...

    使用CASE WHEN语句他统计各个年龄段人数

    SELECT

    SUM(CASE WHEN (TO_CHAR( SYSDATE, 'YYYY' ) - SUBSTR( t.INPUT_IDCARD, 7, 4 ) ) BETWEEN 20 AND 30 THEN 1 ELSE 0 END) AS "20-30岁",

    SUM(CASE WHEN (TO_CHAR( SYSDATE, 'YYYY' ) - SUBSTR( t.INPUT_IDCARD, 7, 4 ) ) BETWEEN 31 AND 40 THEN 1 ELSE 0 END) AS "31-40岁",

    SUM(CASE WHEN (TO_CHAR( SYSDATE, 'YYYY' ) - SUBSTR( t.INPUT_IDCARD, 7, 4 ) ) BETWEEN 41 AND 50 THEN 1 ELSE 0 END) AS "41-50岁",

    SUM(CASE WHEN (TO_CHAR( SYSDATE, 'YYYY' ) - SUBSTR( t.INPUT_IDCARD, 7, 4 ) ) BETWEEN 51 AND 60 THEN 1 ELSE 0 END) AS "51-60岁"

    FROM t

    遇到需要整合的sql是使用CASE WHEN还是UNION呢?

    SELECT COUNT(*) FROM t WHERE (TO_CHAR( SYSDATE, 'YYYY' ) - SUBSTR( INPUT_IDCARD, 7, 4 ) ) BETWEEN 20 AND 30

    UNION ALL

    SELECT COUNT(*) FROM t WHERE (TO_CHAR( SYSDATE, 'YYYY' ) - SUBSTR( INPUT_IDCARD, 7, 4 ) ) BETWEEN 31 AND 40

    UNION ALL

    SELECT COUNT(*) FROM t WHERE (TO_CHAR( SYSDATE, 'YYYY' ) - SUBSTR( INPUT_IDCARD, 7, 4 ) ) BETWEEN 41 AND 50

    UNION ALL

    SELECT COUNT(*) FROM t WHERE (TO_CHAR( SYSDATE, 'YYYY' ) - SUBSTR( INPUT_IDCARD, 7, 4 ) ) BETWEEN 51 AND 60

    执行结果为

    1.CASE WHEN

    b9d086005e5c

    CASE WHEN - 结果.png

    b9d086005e5c

    CASE WHEN - 时间.png

    2.UNION ALL

    b9d086005e5c

    UNION ALL - 结果.png

    b9d086005e5c

    UNION ALL - 时间.png

    展开全文
  • SUM统计使用CASE WHEN

    千次阅读 2021-05-08 14:20:25
    SUM统计使用CASE WHEN如下建立表结构,createtabletest(idintnotnullAUTO_INCREMENT,typeintnotnull,valueintnotnull,primarykey(id));INSERTINTOtest(type,value)VALUES(1,1),(2,2),(3,3),(4,4);根据 根据type的值...
  • oracle根据多个不同条件求和

    千次阅读 2020-03-13 09:48:28
    SELECT COUNT(CASE WHEN category LIKE '%外购附件%' THEN 1 END) wgfjcount, COUNT(CASE ...
  • oracle 查询sum很慢

    2021-05-06 06:21:37
    这是oracle 查询语句,查出来需要200s,返回行数100,表都不到100w,不加sum很快,加了sum很慢,sql如下:select sum(qty) tag_qty, rc_idfrom (select ser_id,func_get_pdr_count(service_tag, dispatch_time) as ...
  • 1 case when 写法 2 sum case when 用法 3 select 拼接字段 示例如下: when 2 then 'C' else 'D' end ) as '类型',count(*) as '数量' from table group by orderType
  • sum(decode(t_item, 'item1', t_num, 0)) item1, sum(decode(t_item, 'item2', t_num, 0)) item2, sum(decode(t_item, 'item3', t_num, 0)) item3, sum(t_num) total from test group by t_name; 方式二: ...
  • Oracle中的SUM条件查询

    千次阅读 2018-01-23 14:49:40
    1、按照区域编码分组查询区域编码、IPTV_NBR不为空的数量、ACC_NBR不为空的数量...SUM ( CASE WHEN IPTV_NBR IS NULL or IPTV_NBR = '' THEN 0 ELSE 1 END ), SUM ( CASE WHEN ACC_NBR IS NULL or ACC_NBR =
  • oracle动态求和分组

    2021-03-10 00:01:50
    问题描述: 这里有很多条记录,其中需要按照数量字段,进行合并 合并规则: 按照合并数量和>=6的合并为一条记录 合并之后的记录,有新的ID 思路:先根据数量排序,再根据和为6进行分组标记,然后根据标记求和,最后筛选记录;...
  • Oracle 去重求和方式一

    千次阅读 2020-07-02 18:02:24
    ( SELECT ROW_NUMBER ( ) OVER ( PARTITION BY CASE_ID ORDER BY DETECT_TIME ) rn, JCZF_DANGER.* FROM JCZF_DANGER ) j LEFT JOIN ( SELECT case_id, sum( NVL( PENALTY_ORG_FINE, 0 ) ) AS orgTotalMoney,...
  • 假设表A,有1个字段是状态字段,状态值有1,2,3如果没有查询条件可以这样,如果查询条件很复杂时,这个语句就没法看了如果涉及到表联合,group by ,那就更复杂了select(select count(*) from A where state=1 and 其他条件...
  • 数据库中sum条件求和(举例)

    千次阅读 2019-07-15 18:30:31
    数据库中sum条件求和 举例 假设数据库中有 A B C A1 炒肉 100 B1 烧肉 200 C1 优惠 -30 客户点了两个菜 最后优惠了-30 然后进行主表查询 主表中显示 客户支付金额,及优惠金额 一句sql进行查询=======&...
  • 1、表结构,三张表,流程表wf_task、法人表cust_legal,订单表 CREATE TABLE `wf_task` ( `id` varchar(32) NOT NULL, `buss_no` varchar(128) NOT NULL DEFAULT '' COMMENT '订单号', `cust_id` varchar(32) ...
  • OracleCase When的用法

    千次阅读 2021-11-08 20:18:28
    一、Case的两种表达式 1.1、简单的case表达式 SELECT CASE 列名 WHEN 值1 THEN 結果1 WHEN 值2 THEN 結果2 ELSE 结果3 END FROM table1; 1.2、检索的cse表达式 SELECT CASE WHEN 条件1 THEN ...
  • Oracle简单的max/sum判断

    2021-10-29 14:11:36
    一.原表 二.整合 我们想要type1栏位中,有逗号的就计算数量的和,没有逗号的就取最大值 ...(case when max(type1) like '%,%' then sum(quantity) else max(quantity) end)quantity from you_table GROUP BY type1
  • Oracle 分组求和(特殊处理)

    千次阅读 2018-03-26 14:58:43
    对于编程人员的我们来说,写sql应该是不可避免的,要...无论是取最大值或求和等操作,我们一般都会用到这些语句,既然是如此常用的语句,那我们就一起来看看它的一些用法吧。 知识无极限,与你来相见,欢迎点赞支持!
  • 在我们使用数据库的时候,可能会遇到需要进行...在mysql中我们可以使用group by sum case when 来解决这个问题,sql语句如下:select date_year,sum(case when win_lose = '胜' then 1 else 0 end) win,sum(case whe...
  • 数据库SQL之学习SUM总和套用条件CASE WHEN语句1.SQL之学习SUM总和套用条件CASE WHEN语句2.条件语句CASE WHEN 格式已经在图中写的很明白了-- 查询t_wzw库中所有数据 总和(条件为t_wzw.birthday = date_sub函数(当前...
  • oracle 多列求和

    千次阅读 2019-06-04 10:15:00
    第一种: select sum(decode(count1,null,0,count1) +decode(count2,null,0,count2) +decode(count3,null,0,count3)) a from test_table ...select sum (case when count1 is not null then count1 when ...
  • 按照每一天统计总和,但是不包括,12014,13003,12030,当id=12013时候,取负值 sql:写法一 select t.date,sum( case when id='12014' then 0 when id='13003' then 0 when stcdt='12030' then 0 when stcdt='...
  • 原文链接:https://page.om.qq.com/page/OO2PXCD6VZ6CVqLqjpU6uShg0以下是本人整理的ORACLE学习的一些基本的语法...-防止NULL值进入指定的列,在单列基础上定义,默认情况下,ORACLE允许在任何列中有NULL值.2.CHECK (...
  • 利用sum来实现行列转换原始表如下: www.2cto.com预期想要将表中的每一个IDX_CODE分别在查询结果中各显示一列,结果表如下:建表语句如下:create table test(IDX_DATA_ID NUMBER(12) not null,org_no NUMBER(2),org...
  • oracle 分组求和一个小例子

    万次阅读 2015-04-09 14:19:06
    当然,用了decode()函数,那也可以用case函数了。 失败的sql语句: --方式2 select distinct a.req_time, a.fail, b.success from ( select req_time, count (*) fail from gw_log where...
  • 1、时间处理函数trunc(sysdate) 返回日期sqlto_date()oracleto_char(sysdate,'yyyy-mm-dd hh24:mi:ss')appto_number() 转为数字函数2、字符串处理函数oopsubstr(bag.serialid, 0, 13) 截取字符串sparegexp_substr(i_...
  • oracle对三个列求sum

    万次阅读 2017-06-30 10:40:07
    oracle数据库对test_table表的三个列count1,count2,count3求sum的两种sql
  • @[TOC](总计和小计、逐行累计求和)### 一、总计和小计使用函数#### 1、rollupgroup by 我们都知道,是一个分组函数,用于针对某一列做分组操作。但是当它搭配其他的函数一起使用的时候,就像一对男女孩,撞出不一样...
  • --case:类似于java的if select deptno, case deptno when 10 then '市场部' when 20 then '研究部' when 30 then '人事部' else '其他部' end from scott.emp; --统计工资级别(取范围是用,>=运算符) select sal,...
  • 表转置,求和,是很常用的方式 上代码: create table win ( rq varchar2(10), shengfu varchar2(2)); insert into win(rq,shengfu) values('2005-05-09','胜'); insert into win(rq,shengfu) values('2005-05-09',...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,290
精华内容 2,116
关键字:

oracle 条件求和sum case