15/03/21  用函数进行每年,每月,每周,每日的数据汇总

假设一个销售明细表 sale_detail 含有 国家(country),销售时间(sale_time),销售额(sale_money)..等等

需要用到求和函数 SUM()和分组子句 GROUP BY   按国家和年份分组进行求和汇总(对每一个国家的每一年进行求和)

有两种语句形式:

每年汇总

1、表格形式例如:

国家

年份

销售额

巴西

2014

500000000000

方式一:

SELECT  S.country  as 国家---as 可以省略

to_char(S.sale_time,’YYYY’)  as 年份---to_char()字符格式化函数,将时间格式转换为四位年份,‘YYYY’字符格式显示

Sum(S.sale_money) as 销售额---对满足国家年份条件的金额进行汇总

FROM   sale_detail  S ---数据源为 sale_detail

WHERE  sale_time>=to_date(‘2014-01-01’,’YYYY-MM-DD’) ---to_date()时间格式化函数,讲字符转换为时间格式。用时间范围的形式确定时间范围为哪年。

AND   sale_time<=to_date(‘2015-01-01,’YYYY-MM-DD’)

GROUP BY   S.country,sale_time--- 将WHERE查询出的数据按国家,时间汇总

HAVING Sum(S.sale_money)>10000000--   对分组查询出来的结果进行处理,只选出大于10000000-的数据。

方式二:

SELECT  S.country  as 国家---as 可以省略

to_char(S.sale_time,’YYYY’)  as 年份---to_char()字符格式化函数,将时间格式转换为四位年份,‘YYYY’字符格式显示

Sum(S.sale_money) as 销售额---对满足国家年份条件的金额进行汇总

FROM   sale_detail  S ---数据源为 sale_detail

WHERE  to_char(sale_time,’YYYY’)=’2014’--to_char()字符转换格式化函数,将时间格式转换为字符。查找出含有2014年的数据。

GROUP BY   S.country,sale_time--- 将WHERE查询出的数据按国家,时间汇总

HAVING Sum(S.sale_money)>10000000--   对分组查询出来的结果进行处理,只选出大于10000000-的数据。

每月汇总

1、表格形式如下

国家

月份

销售额

巴西

2014/05

6000000

SELECT  S.country  as 国家---as 可以省略

to_char(S.sale_time,’YYYY/MM’)  as 年份---to_char()字符格式化函数,将时间格式转换为四位年份,两位月份,‘YYYY/MM’字符格式显示

Sum(S.sale_money) as 销售额---对满足国家年份条件的金额进行汇总

FROM   sale_detail  S ---数据源为 sale_detail

WHERE  to_char(sale_time,’YYYY’)=’2014’--to_char()字符转换格式化函数,将时间格式转换为字符。查找出含有2014年的数据。

GROUP BY   S.country,sale_time--- 将WHERE查询出的数据按国家,时间汇总

ORDER BY   S.sale_time

2、表格形式如下:

国家

年份

月份

销售额

巴西

2014

1

600000

巴西

2015

2

600000

SELECT  S.country  as 国家---as 可以省略

to_char(S.sale_time,’YYYY’)  as 年份

to_char(S.sale_time,’MM’)  as 月份---to_char()字符格式化函数,将时间格式转换为四位年份,两位月份,‘MM’字符格式显示

Sum(S.sale_money) as 销售额---对满足国家年份条件的金额进行汇总

FROM   sale_detail  S ---数据源为 sale_detail

WHERE  to_char(sale_time,’YYYY’)  in (’2014’,’2015’)--to_char()字符转换格式化函数,将时间格式转换为字符。查找出含有2014,2015年的数据。

GROUP BY   S.country,sale_time--- 将WHERE查询出的数据按国家,时间汇总

ORDER BY   S.country,,S.sale_time

ORACLE/SQL用函数进行每年,每月,每周,每日的数据汇总的更多相关文章

  1. SQL语句统计每天、每月、每年的 数据

    SQL语句统计每天.每月.每年的数据 1.每年select year(ordertime) 年,sum(Total) 销售合计from 订单表group by year(ordertime) 2.每月 ...

  2. 【转】SQL语句统计每天、每月、每年的数据

    原文:https://www.cnblogs.com/Fooo/p/3435687.html SQL语句统计每天.每月.每年的数据 1.每年select year(ordertime) 年,sum(T ...

  3. ORACLE SQL单行函数(三)【weber出品必属精品】

    16.L:代表本地货币符,这个和区域有关.这个时候我们想来显示一下人民币的符号:¥ $ vi .bash_profile ---写入如下内容: export NLS_LANG='SIMPLIFIED ...

  4. ORACLE SQL单行函数(一)【weber出品必属精品】

    1.SUBSTR:求父串中的子串 SUBSTR('HelloWorld',1,5) 1:代表子串的起始位置,如果为正,正数,如果为负,倒数 5:代表字串的终止位置,只能向右数,可以省略,如果省略就是数 ...

  5. ORACLE SQL 组函数【weber出品必属精品】

    组函数:对一组数据进行加工,每组数据返回一个值 常用的组函数:count()  avg()  max()   min()  sum()   count()函数  1. count(*) :返回总共的行 ...

  6. ORACLE SQL单行函数(二)【weber出品必属精品】

    11.dual:虚表,任何用户都可以使用,表结构如下: SQL> desc dual Name Null? Type -------------------------------------- ...

  7. SQL语句统计每天、每月、每年的数据

    1.每年select year(ordertime) 年,sum(Total) 销售合计from 订单表group by year(ordertime) 2.每月select year(orderti ...

  8. [原创]SQL表值函数:返回自定义时间段的日期数据

    跟以往类似,我依旧介绍一个我日常开发遇到的知识点,谨此记录一下,也希望能帮助到一些朋友. 这次我要介绍的是通过SQL函数返回你输入的两个时间点内的日期数据. 效果图如下: 执行函数:SELECT * ...

  9. Oracle SQL常用内置系统函数总结

    Oracle数据库  内置系统函数主要分为以下类别:数学函数.字符串函数.日期函数.转换函数.聚合函数.分析聚合函数 一.数学函数 ------------返回数字       abs(n):返回数字 ...

随机推荐

  1. kettle An error occurred, processing will be stopped: 错误 解决方法

    上午在使用KETTLE时,报了一个 An error occurred, processing will be stopped: 错误,手动跑没有问题,用jekens调用就报错. 具体原因不清楚,后面 ...

  2. C++序列容器之 vector常见用法总结

    一.关于vector 本文默认读者具有一定的c++基础,故大致叙述,但保证代码正确. vector是一个动态的序列容器,相当于一个size可变的数组. 相比于数组,vector会消耗更多的内存以有效的 ...

  3. python中format格式化函数

    http://www.runoob.com/python/att-string-format.html

  4. 用data的方法获取值的时候,要注意的问题一定要在先封装好

    var art=$(".add-more").prev().find(".content").data("list1"); 我们一定要在aj ...

  5. [Next] 六.next的优化

    导出 html 并开启服务 我们将 pages 下页面导出为静态 HTML 页面.首先,next.config.js 在应用程序的根目录中创建一个名为的文件,并添加以下内容 exportPathMap ...

  6. 配置Mysql远程连接

    一.赋予某个用户权限 1.赋予权限格式:grant 权限 on 数据库对象 to 用户@IP(或者相应正则) 注:可以赋予select,delete,update,insert,index等权限精确到 ...

  7. C# 如何正确删除控件已添加的事件

    方法一:在相对应里窗体下面有个 "窗体.Designer.cs"文件,双击打开,找到相关事件,删除就行. 方法二:找到构造函数,“InitializeComponent()”对着它 ...

  8. 如何给Word参考文献加方括号

    脚注是在页面下端添加的注释,如添加在一篇论文首页下端的作者情况简介:尾注是在文档尾部(或节的尾部)添加的注释,如添加在一篇论文末尾的参考文献目录. 若用手工添加脚注和尾注,则既麻烦又易出错.当用Wor ...

  9. kinit: Bad encryption type while getting initial credentials

    描述:RHEL 6.x主机执行kinit -kt命令报如下错误 [heboan@localhost~]$ kinit -kt heboan.keytab heboan kinit: Bad encry ...

  10. dedecms sql 替换 或 删除

    UPDATE dede_archives SET writer='你需要修改的作者' WHERE writer=''; UPDATE dede_archives SET source='你需要修改的来 ...