`

oracle 求每个季度资费

阅读更多
一个面试题:表A(userid,yuefen,费用类型,金额)

问题如下:求每个用户四个季度的资费总额

问题分析:因为每个用户每个月的费用类型不同,因此需要算出每个月每个用户的总额
          在此基础上,计算每个用户每个季度的总额

解决办法:

         方法一:case when

select userid,sum(case when yuefen>=1 and yuefen <=3 then 金额 end)  第一季度,
       sum(case when yuefen>=4 and yuefen <=6 then 金额 end)  第二季度,
       sum(case when yuefen>=7 and yuefen <=9 then 金额 end)  第三季度,
       sum(case when yuefen>=10 and yuefen <=12 then 金额 end)  第四季度
from (select userid,月份,sum(金额) 金额 from A group by userid,月份)group by userid;

         方法二:decode

select userid,sum(decode(yuefen,1,金额,2,金额,3,金额)) 第一季度,
       sum(decode(yuefen,4,金额,5,金额,6,金额)) 第二季度,
       sum(decode(yuefen,7,金额,8,金额,9,金额)) 第三季度,
       sum(decode(yuefen,10,金额,11,金额,12,金额)) 第四季度
from (select userid,月份,sum(金额) 金额 from A group by userid,月份)group by userid;
分享到:
评论

相关推荐

    Oracle统计一天内每小时的数据量

    Oracle统计一天内每小时的数据量。在某小时内有数据,该时间段会被统计出来;该时间段内没有交易,该时间段不会被统计出来,默认为0即可

    Oracle 单一主机多个实例多个监听器配置

    在案例中给出的部分内容展示了如何在`SID_LIST_LISTENER`部分定义多个`SID_DESC`条目,每个条目对应一个实例的描述,包括实例名称、Oracle Home路径和实例的SID名称。 #### 结论 在Oracle单一主机上配置多个实例和...

    ORACLE获取周月季年的第一天和最后一天

    本季度的最后一天,可以先获取下个季度的第一天,然后减去1天: ```sql SELECT ADD_MONTHS(TRUNC(SYSDATE, 'Q'), 3) - 1 FROM DUAL; -- 本季最后一天 ``` 4. **本年** 获取本年的第一天,'yyyy'代表年: ```...

    Oracle 查询两个日期之间的所有月份

    Oracle 查询两个日期之间的所有月份

    ORACLE EBS查看库存现有量

    ORACLE EBS查看库存现有量SQL

    两个oracle数据库的监听的配置

    - 确保每个实例的ORACLE_HOME路径正确无误。 - 主机名和端口号必须与实际环境匹配。 - 对于双实例或多实例环境,确保每个实例的服务名和服务实例名不冲突。 - 在启动数据库实例之前,必须先启动监听器。 - 完成配置...

    oracle语句查询两个日期之间星期六、星期日的天数

    oracle语句查询两个日期之间星期六、星期日的天数

    基于C#连接Oracle数据库Oracle.ManagedDataAccess

    首先,Oracle.ManagedDataAccess是Oracle公司提供的一个纯.NET框架的客户端驱动,它允许开发者在不安装Oracle客户端的情况下,直接与Oracle数据库进行交互。这个库包含了所有必要的组件,使得C#程序可以方便地执行...

    Oracle体系结构详解.pdf

    在同一服务器上可以安装多个 Oracle 软件,每个 Oracle 软件可以建多个 Database,但是每个 Database 只对应一个 Instance。在实例切换时,需要使用 connect 命令连接到相应的 Instance,例如:connect 用户名/密码@...

    linux下oracle安装两个实例一个监听的配置

    在Linux环境下配置Oracle数据库时,有时我们需要在同一台服务器上安装多个Oracle实例,并通过一个监听器进行管理。这种配置可以提高资源利用率并简化网络管理。本文将详细介绍如何在Linux下为两个Oracle实例配置一个...

    Mysql转Oracle软件 DBMover for Mysql to Oracle

    使用DBMover可以灵活定义Mysql和Oracle之间表和字段的对照关系,也可以在DBMover创建一个查询,把查询结果当作源表转入到Oracle中。 Dbmover for Mysql to Oracle 可以定时,定周期自动运行。 支持 Oracle 8i 以后...

    Oracle大型数据库技术详解

    每个 Oracle数据库对应唯一的一个实例名SID,Oracle数据库服务器启动后,一般至少有以下几个用户:Internal,它不是一个真实的用户名,而是具有SYSDBA优先级的Sys用户的别名,它由DBA用户使用来完成数据库的管理任务...

    Oracle RAC配置ST_Geometry技术文档

    1. 向 Oracle 每个节点服务器上传 libst_shapelib.so 文件,利用 oracle 用户上传到 $ORACLE_HOME/lib 路径下,并赋权限 chown oracle:oinstall libst_shapelib.so,chmod 775 libst_shapelib.so。 2. 在每个节点的...

    Oracle课程设计 Oracle项目实例 Oracle编程

    SQL的基本操作如CRUD(创建、读取、更新、删除)是每个Oracle开发者必须熟练掌握的。此外,还将涉及表的创建、索引、视图、存储过程、触发器以及事务管理等主题,这些都是构建高效数据库应用程序的基础。 在Oracle...

    Oracle各版本生命周期

    Oracle的生命周期政策确保了客户在每个产品的整个生命周期内都能获得必要的技术支持和服务,同时鼓励他们随着时间的推移升级到更先进的版本,以利用最新的技术和安全增强。这种策略不仅有助于维持系统的稳定性和安全...

    oracle.jdbc.driver.oracledriver Oracle JDBC驱动包 ojdbc6

    标题中的"ojdbc6"指的是Oracle JDBC驱动的一个特定版本,适用于Java SE 6环境。这个驱动包包含了多个JAR文件,如`classes12.jar`、`ojdbc5.jar`和`ojdbc6.jar`,它们各自服务于不同的Java兼容性和功能需求。 1. **...

    oracle的按月统计sql(一个数据库面试题)

    oracle的按月统计sql..............................

    Oracle批处理:使用C# 自带Oracle驱动一次执行多条Sql语句

    这是Oracle公司为.NET开发者提供的一个数据访问组件,它允许我们直接在C#代码中与Oracle数据库进行交互。安装ODP.NET后,我们可以通过NuGet包管理器引入Oracle.ManagedDataAccess.dll库,这将提供连接、查询以及...

Global site tag (gtag.js) - Google Analytics