ORACLE/SQL用函数进行每年,每月,每周,每日的数据汇总
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用函数进行每年,每月,每周,每日的数据汇总的更多相关文章
- SQL语句统计每天、每月、每年的 数据
SQL语句统计每天.每月.每年的数据 1.每年select year(ordertime) 年,sum(Total) 销售合计from 订单表group by year(ordertime) 2.每月 ...
- 【转】SQL语句统计每天、每月、每年的数据
原文:https://www.cnblogs.com/Fooo/p/3435687.html SQL语句统计每天.每月.每年的数据 1.每年select year(ordertime) 年,sum(T ...
- ORACLE SQL单行函数(三)【weber出品必属精品】
16.L:代表本地货币符,这个和区域有关.这个时候我们想来显示一下人民币的符号:¥ $ vi .bash_profile ---写入如下内容: export NLS_LANG='SIMPLIFIED ...
- ORACLE SQL单行函数(一)【weber出品必属精品】
1.SUBSTR:求父串中的子串 SUBSTR('HelloWorld',1,5) 1:代表子串的起始位置,如果为正,正数,如果为负,倒数 5:代表字串的终止位置,只能向右数,可以省略,如果省略就是数 ...
- ORACLE SQL 组函数【weber出品必属精品】
组函数:对一组数据进行加工,每组数据返回一个值 常用的组函数:count() avg() max() min() sum() count()函数 1. count(*) :返回总共的行 ...
- ORACLE SQL单行函数(二)【weber出品必属精品】
11.dual:虚表,任何用户都可以使用,表结构如下: SQL> desc dual Name Null? Type -------------------------------------- ...
- SQL语句统计每天、每月、每年的数据
1.每年select year(ordertime) 年,sum(Total) 销售合计from 订单表group by year(ordertime) 2.每月select year(orderti ...
- [原创]SQL表值函数:返回自定义时间段的日期数据
跟以往类似,我依旧介绍一个我日常开发遇到的知识点,谨此记录一下,也希望能帮助到一些朋友. 这次我要介绍的是通过SQL函数返回你输入的两个时间点内的日期数据. 效果图如下: 执行函数:SELECT * ...
- Oracle SQL常用内置系统函数总结
Oracle数据库 内置系统函数主要分为以下类别:数学函数.字符串函数.日期函数.转换函数.聚合函数.分析聚合函数 一.数学函数 ------------返回数字 abs(n):返回数字 ...
随机推荐
- (4.15)mysql备份还原——物理备份之XtraBackup的下载与安装
关键词:mysql物理备份,XtraBackup,XtraBackup安装,XtraBackup下载 实践链接:https://www.cnblogs.com/gered/p/11147193.htm ...
- 解决The total number of locks exceeds the lock table size错误
参考:https://blog.csdn.net/weixin_40683253/article/details/80762583 mysql在进行大批量的数据操作时,会报“The total num ...
- axios模块封装和分类列表实现
这个作用 主要还是为了让代码更加的,清晰. 不要全部都放到 created(){} 这个方法下面.把这些代码全部抽离出去. 这里就只是去调用方法.1. src 目录下,新建文件夹--- rest ...
- servlet_filterj简介
Filter总结: 1):Filter也称之为过滤器,它是Servlet技术中最激动人心的技术,WEB开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servlet, ...
- JavaScript处理股票数据
1, 先使用Ajax发送异步请求到:http://hq.sinajs.cn/list=s_sh000001 2, 然后用[,]切割成数组https://www.w3school.com.cn/js/j ...
- 使用history.js解决浏览器对history使用的兼容问题
history.js即可以解决禁止浏览器回退的浏览器兼容问题,也能解决直接修改浏览器当前标签页url的浏览器兼容问题. 解决禁止浏览器回退: <script src="../../js ...
- spark教程(二)-shell操作
spark 支持 shell 操作 shell 主要用于调试,所以简单介绍用法即可 支持多种语言的 shell 包括 scala shell.python shell.R shell.SQL shel ...
- js数据结构-链表
链表和数组 大家都用过js中的数组,数组其实是一种线性表的顺序存储结构,它的特点是用一组地址连续的存储单元依次存储数据元素.而它的缺点也正是其特点而造成,比如对数组做删除或者插入的时候,可能需要移动大 ...
- golang中格式化符号说明
%v 值的默认格式表示 %+v 类似%v,但输出结构体时会添加字段名 %#v 值的Go语法表示 %T 值的类型的Go语法表示 %% 百分号 布尔值: %t 单词true或false 整数: %b 表示 ...
- 树莓派USB存储设备自动挂载并通过脚本实现自动拷贝,自动播放视频,脚本自动升级等功能
需求:首先需要树莓派自动挂载USB设备,然后扫描USB指定目录下文件,将相关文件拷贝至树莓派指定目录,然后通过omxplayer循环播放新拷贝文件视频 1. 树莓派实现USB存储设备自动挂载 树莓派U ...