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):返回数字 ...
随机推荐
- kettle An error occurred, processing will be stopped: 错误 解决方法
上午在使用KETTLE时,报了一个 An error occurred, processing will be stopped: 错误,手动跑没有问题,用jekens调用就报错. 具体原因不清楚,后面 ...
- C++序列容器之 vector常见用法总结
一.关于vector 本文默认读者具有一定的c++基础,故大致叙述,但保证代码正确. vector是一个动态的序列容器,相当于一个size可变的数组. 相比于数组,vector会消耗更多的内存以有效的 ...
- python中format格式化函数
http://www.runoob.com/python/att-string-format.html
- 用data的方法获取值的时候,要注意的问题一定要在先封装好
var art=$(".add-more").prev().find(".content").data("list1"); 我们一定要在aj ...
- [Next] 六.next的优化
导出 html 并开启服务 我们将 pages 下页面导出为静态 HTML 页面.首先,next.config.js 在应用程序的根目录中创建一个名为的文件,并添加以下内容 exportPathMap ...
- 配置Mysql远程连接
一.赋予某个用户权限 1.赋予权限格式:grant 权限 on 数据库对象 to 用户@IP(或者相应正则) 注:可以赋予select,delete,update,insert,index等权限精确到 ...
- C# 如何正确删除控件已添加的事件
方法一:在相对应里窗体下面有个 "窗体.Designer.cs"文件,双击打开,找到相关事件,删除就行. 方法二:找到构造函数,“InitializeComponent()”对着它 ...
- 如何给Word参考文献加方括号
脚注是在页面下端添加的注释,如添加在一篇论文首页下端的作者情况简介:尾注是在文档尾部(或节的尾部)添加的注释,如添加在一篇论文末尾的参考文献目录. 若用手工添加脚注和尾注,则既麻烦又易出错.当用Wor ...
- kinit: Bad encryption type while getting initial credentials
描述:RHEL 6.x主机执行kinit -kt命令报如下错误 [heboan@localhost~]$ kinit -kt heboan.keytab heboan kinit: Bad encry ...
- dedecms sql 替换 或 删除
UPDATE dede_archives SET writer='你需要修改的作者' WHERE writer=''; UPDATE dede_archives SET source='你需要修改的来 ...