`
53873039oycg
  • 浏览: 842073 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

[简单]oracle当日当月当年销量统计

 
阅读更多

       

with tmp_t as(
select 1 as id,to_date('2014-06-01','yyyy-mm-dd') as v_date,1 as v_num from dual union all
select 1,to_date('2014-06-02','yyyy-mm-dd') ,2 a from dual union all
select 1,to_date('2014-06-12','yyyy-mm-dd') ,3 a from dual union all
select 1,to_date('2014-06-22','yyyy-mm-dd') ,4 a from dual union all
select 1,to_date('2014-05-22','yyyy-mm-dd') ,3 a from dual union all
select 1,to_date('2014-03-22','yyyy-mm-dd') ,7 a from dual union all
select 2,to_date('2014-06-02','yyyy-mm-dd') ,2 a from dual union all
select 2,to_date('2014-06-07','yyyy-mm-dd') ,5 a from dual union all
select 2,to_date('2014-06-17','yyyy-mm-dd') ,3 a from dual union all
select 2,to_date('2014-07-17','yyyy-mm-dd') ,3 a from dual union all
select 2,to_date('2014-08-17','yyyy-mm-dd') ,8 a from dual 
)  
select aa.id, sum(aa.current_num), sum(aa.month_num), sum(aa.year_num)
  from (select id,
               sum(case
                     when trunc(v_date) =
                          trunc(to_date('2014-06-02', 'yyyy-mm-dd')) then
                      v_num
                     else
                      0
                   end) current_num,
               sum(v_num) month_num,
               max(0) year_num
          from tmp_t
         where 1 = 1
           and v_date < last_day(to_date('2014-06-02', 'yyyy-mm-dd')) + 1
           and v_date >=
               trunc(add_months(last_day(to_date('2014-06-02', 'yyyy-mm-dd')),
                                -1) + 1)
         group by id
        union all
        select id, max(0) current_num, max(0) month_num, sum(v_num) year_num
          from tmp_t
         where 1 = 1
           and v_date< add_months(trunc(to_date('2014-06-02', 'yyyy-mm-dd'),'yyyy'),12)
           and v_date >= trunc(to_date('2014-06-02', 'yyyy-mm-dd'), 'yyyy')
         group by id) aa
 group by aa.id

    结果如下

 

   

      欢迎提出更好的写法

      全文完

 

  • 大小: 19.5 KB
0
0
分享到:
评论

相关推荐

    SQL语句,查询当月,当年数据

    ### SQL语句:查询当月、当年数据及本周数据 #### 概述 在数据库管理与数据分析领域,针对特定时间段内的数据查询是非常常见的需求之一。本文将详细介绍如何使用SQL语句来查询当前月份、当年以及本周的数据。这些...

    Oracle数据库按时间进行分组统计数据的方法

    Oracle数据库提供了一种强大的数据分组和统计功能,这在处理时间序列数据时尤其有用。在本示例中,我们关注的是如何利用SQL查询按时间进行分组统计数据。以下将详细介绍几种常见的分组方法及其应用。 1. **按年份...

    Oracle分组统计

    Oracle 分组统计 Oracle 分组统计是数据库开发中常用的技术之一。它可以根据不同的条件对数据进行分组和聚合统计。分组统计的目的是将数据按照某种条件分组,然后对每个组进行聚合计算,最后输出结果。 分组统计...

    Oracle 11G统计信息自动收集及调整

    文档里包含Oracle 11G统计信息自动收集及调整,可以使用优化数据库性能,不合理的统计信息会影响数据库性能

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

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

    ORACLE 数据库的统计数据及优化

    ### ORACLE 数据库的统计数据及优化 #### 一、引言 在当今信息化时代,数据库管理系统(DBMS)作为数据管理的核心工具,其性能优化尤为重要。Oracle数据库作为一种广泛使用的DBMS,其性能优劣直接影响到企业的业务...

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

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

    ORACLE表空间大小统计语句

    ORACLE表空间大小统计语句,比较详细的。。。。

    SQL和Oracle中统计数据库中表个数及表名

    在SQL和Oracle数据库管理系统中,有时我们需要统计数据库中包含的表的数量以及获取具体的表名。以下是如何在两者中实现这一目标的详细步骤。 在SQL中,我们通常使用系统对象表来获取相关信息。`sys.objects`是SQL ...

    提高ORACLE数据库的查询统计速度

    ### 提高Oracle数据库的查询统计速度 在现代企业级应用中,Oracle数据库因其稳定性和强大的功能而被广泛采用。然而,在处理大量数据时,如何优化查询统计速度成为了提高整体系统性能的关键因素之一。本文将围绕如何...

    ORACLE统计表记录数

    ORACLE 数据库中如何统计表记录数的过程说明

    oracle 11g 统计信息

    ### Oracle 11g 自动收集统计信息的时间 在Oracle 11g中,自动收集统计信息是一项重要的数据库维护任务,它有助于优化查询性能并确保数据的准确性。本篇文章将详细介绍Oracle 11g如何自动收集统计信息以及如何管理...

    Oracle Statistic 统计信息

    ### Oracle Statistic 统计信息详解 #### 一、Statistic的重要性与作用 在Oracle数据库管理中,**Statistic**起着至关重要的作用。它主要负责收集关于数据库对象的详细信息,并将这些信息存储在数据字典中。这些...

    oracle12c 32位简易客户端

    Oracle 12c 32位简易客户端是一个轻量级的数据库连接工具,适用于那些只需要基本数据库访问功能的用户。这个客户端包含了SQL*Plus、ODBC驱动程序以及其他基础组件,可以满足开发人员、系统管理员以及对Oracle数据库...

    Oracle 获得某日期属于该前月中的第几个自然周

    在Oracle数据库中,计算某个日期属于其前一个月中的第几个自然周是一项常见的需求,这在数据分析、报表生成或业务逻辑处理中很有用。这个任务可以通过编写一个自定义函数来实现,例如提供的`to_week_by_month.fnc`...

    简易的oracle作业

    "简易的Oracle作业"可能指的是在Oracle环境中执行的一些基本的数据库管理和维护任务,这些任务可能包括数据导入导出、查询优化、表空间管理、备份与恢复等。 一、数据导入导出 Oracle提供了多种工具进行数据导入...

    简易oracle客户端连接

    "简易Oracle客户端连接"就是这样一个工具,它免去了安装完整Oracle客户端的复杂过程,提供了一种绿色、简洁且实用的解决方案。 这个工具的核心功能包括: 1. **SQL语句执行**:开发者可以输入SQL查询语句,工具会...

    oracle简单客户端配置64位

    Oracle简单客户端配置64位教程 Oracle数据库是一个广泛使用的数据库管理系统,尤其在企业级应用中占据重要地位。在某些情况下,我们可能并不需要完整的Oracle数据库服务器环境,而是只需要一个能够连接到远程Oracle...

    Oracle 获得某日期属于一年中的第几个自然周

    标题“Oracle 获取某日期属于一年中的第几个自然周”指的是在Oracle数据库系统中,通过SQL查询来确定一个特定日期在当年是第几周的问题。在实际业务中,这样的功能可能用于统计、报告或者数据分析,例如,公司可能...

    简易Oracle数据库客户端

    这个一个简易的Oracle客户端配置,如果你习惯使用PLSQL,但又闲Oracle客户端太大的话可以试试这个,是绿色版的,里面附环境变量配置,只是修改下\oracle10g\network\admin下的tnsnames.ora文件就可以使用,非常节省...

Global site tag (gtag.js) - Google Analytics