Oracle常用统计

Posted 兴想事成

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle常用统计相关的知识,希望对你有一定的参考价值。

 

测试, 这是测消息

 

1.按天


select to_char(t.STARTDATE+15/24, \'YYYY-MM-DD\') as 天,sum(1) as 数量
from HOLIDAY t
group by to_char(t.STARTDATE+15/24, \'YYYY-MM-DD\') --
ORDER by 天 NULLS  LAST;

 

 

select trunc(t.STARTDATE, \'DD\') as 天,sum(1) as 数量
from HOLIDAY t
group by trunc(t.STARTDATE, \'DD\') --
ORDER by 天 NULLS  LAST;


2.按周


select to_char(next_day(t.STARTDATE+15/24 - 7,2),\'YYYY-MM-DD\') AS 周,sum(1) as 数量 
from HOLIDAY t 
group by to_char(next_day(t.STARTDATE+15/24 - 7,2),\'YYYY-MM-DD\')ORDER BY 周;

 

 

-- 按自然周统计 
select to_char(t.STARTDATE,\'iw\') AS 周,sum(1) as 数量
from HOLIDAY t

group by to_char(t.STARTDATE,\'iw\')
ORDER BY 周;


3.按自然月


select to_char(t.STARTDATE,\'YYYY-MM\') as 月份,sum(1) as 数量
from HOLIDAY t

GROUP BY
    to_char(t.STARTDATE,\'YYYY-MM\')
ORDER BY 月份;


4.按季度


select to_char(t.STARTDATE,\'q\') 季度,sum(1) as 数量
from HOLIDAY t
group by to_char(t.STARTDATE,\'q\')
ORDER BY 季度 NULLS  LAST;

 

 

5.按年


select to_char(t.STARTDATE,\'yyyy\') AS 年度,sum(1) as 数量
from HOLIDAY t
group by to_char(t.STARTDATE,\'yyyy\')
ORDER BY 年度;

 

 

 

 


6.ORACLE用GROUP BY 来分组日期字段 按月分组

 

 

SELECT to_char(日期字段,\'yyyymm\'),sum(*) 
FROM [TableName] 
group by to_char(日期字段,\'yyyymm\');
SELECT to_char(日期字段,\'yyyymm\'),sum(*) 
FROM [TableName] 
group by to_char(日期字段,\'yyyymm\');

 

 

7.oracle查询七天数据,并且按日期分组

 


1、查从今天开始前七天日期

select to_char (sysdate- level + 1, \'yyyy-mm-dd\') today FROM DUAL connect BY LEVEL <= 7

2、写统计语句,将数量和日期查出来(这个分组统计自己写)

3、用第一步和第二步两张表做左关联查询 ,没有的数量用0代替(刚好这几天都有数据,没有的会以0展示出来)

 

 

1) NVL函数

NVL(E1, E2)的功能为:如果E1为NULL,则函数返回E2,否则返回E1本身。但此函数有一定局限,所以就有了NVL2函数。

拓展:NVL2函数:Oracle/PLSQL中的一个函数,Oracle在NVL函数的功能上扩展,提供了NVL2函数。NVL2(E1, E2, E3)的功能为:如果E1为NULL,则函数返回E3,若E1不为null,则返回E2。

 

 

2)substr函数格式 (俗称:字符截取函数)

  格式1: substr(string string, int a, int b);

  格式2: substr(string string, int a) ;

解释:

格式1:
1、string 需要截取的字符串
2、a 截取字符串的开始位置(注:当a等于0或1时,都是从第一位开始截取)
3、b 要截取的字符串的长度

格式2:
1、string 需要截取的字符串
2、a 可以理解为从第a个字符开始截取后面所有的字符串

 

以上是关于Oracle常用统计的主要内容,如果未能解决你的问题,请参考以下文章

Oracle数据库从入门到精通-分组统计查询

oracle 中SQL语句查询的问题,分类统计汇总为和

oracle学习篇五:组函数,分组统计

R语言之 常用的统计函数

oracle 常用随笔

oracle中的常用的工具都有哪些?