首页 运维知识 ORACLE/SQL用函数进行每年/每月/每周,每日的数据汇总

ORACLE/SQL用函数进行每年/每月/每周,每日的数据汇总

15/03/21  用函数进行每年,每月,每周,每日的数据汇总 假设一个销售明细表 sale_detail 含有 国家(country),销售时间(sale_time),销售额(s…

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

免责声明:文章内容不代表本站立场,本站不对其内容的真实性、完整性、准确性给予任何担保、暗示和承诺,仅供读者参考,文章版权归原作者所有。如本文内容影响到您的合法权益(内容、图片等),请及时联系本站,我们会及时删除处理。

作者: 小小编

为您推荐

dell R710 更换raid卡后,raid卡信息没有了,处理方案

dell R710 更换raid卡后,raid卡信息没有了,处理方案

1.将一台服务器(A)的硬盘依次拔出,按相同顺序插入另一台同样配置的服务器(B) 2.启动服务器(B) 3.按提示键盘按...
PL SQL Developer 13连接Oracle数据库并导出数据详细操作教程方法

PL SQL Developer 13连接Oracle数据库并导出数据详细操作教程方法

下载 并安装 PL SQL Developer 13,默认支持中文语言 ========================...
关于一条sql语句在mysql中是如何执行的

关于一条sql语句在mysql中是如何执行的

最近开始在学习mysql相关知识,自己根据学到的知识点,根据自己的理解整理分享出来,本篇文章会分析下一个sql语句在my...
关于sql注入姿势总结(mysql)

关于sql注入姿势总结(mysql)

前言 学习了sql注入很长时间,但是仍然没有系统的了解过,这次总结一波,用作学习的资料。 从注入方法分:基于报错、基于布...
关于Oracle SQL外连接

关于Oracle SQL外连接

SQL提供了多种类型的连接方式,它们之间的区别在于:从相互交叠的不同数据集合中选择用于连接的行时所采用的方法不同。 连接...

发表回复

返回顶部