博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ORACLE/SQL用函数进行每年,每月,每周,每日的数据汇总
阅读量:4345 次
发布时间:2019-06-07

本文共 2038 字,大约阅读时间需要 6 分钟。

 

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’字符格式显示

         SumS.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 SumS.sale_money>10000000--   对分组查询出来的结果进行处理,只选出大于10000000-的数据。

 

 

方式二:

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

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

         SumS.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 SumS.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’字符格式显示

         SumS.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’字符格式显示

         SumS.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

转载于:https://www.cnblogs.com/zhengshuheng/p/4749109.html

你可能感兴趣的文章
Linux Namespace : User
查看>>
交换两个整形变量的数值
查看>>
Linux----常用操作
查看>>
sequence
查看>>
Delphi错误:Stack overflow的解决方法
查看>>
一篇很全面的freemarker教程
查看>>
取消chrome(谷歌浏览器)浏览器下最小字体限制
查看>>
模板方法模式
查看>>
什么是ECC内存?
查看>>
使用Visual Studio 2013进行UI自动化测试
查看>>
13-集体照
查看>>
读了曾国藩家书,,心态逐渐平和起来。搞技术的如果缺乏信念的指引,生活会很乏味无聊!...
查看>>
前端javascript 错误 Uncaught SyntaxError: Unexpected token ILLEGAL
查看>>
Selenium WebDriver问题--无法打开Chrome浏览器
查看>>
2017.4.18 Java的Integer与int互转
查看>>
小程序接受返回数组的坑
查看>>
Arduino---HC-05 蓝牙模块
查看>>
构建之法读书笔记02——个人技术和流程
查看>>
解决VS2015安装Android SDK 后文件不全及更新问题
查看>>
辣鸡咯..
查看>>