Oracle 按不同时间分组统计
1、按年
select to_char(record_date,'yyyy'), sum(col_8) as total_money
from table_name
where group by to_char(record_date,'yyyy')
2、按月
select to_char(record_date,'yyyy-mm'), sum(col_8) as total_money
from table_name
where group by to_char(record_date,'yyyy-mm')
3、按季
select to_char(record_date,'yyyy-Q'), sum(col_8) as total_money
from table_name
where group by to_char(record_date,'yyyy-Q')
4、按周
select to_char(record_date,'yyyy-IW'), sum(col_8) as total_money
from table_name
where group by to_char(record_date,'yyyy-IW')
5、按小时
select to_char(record_date,'yyyy-mm-dd hh24'), sum(col_8) as total_money
from table_name
where group by to_char(record_date,'yyyy-mm-dd hh24')
6、按分钟
select to_char(record_date,'yyyy-mm-dd hh24:mi'), sum(col_8) as total_money
from table_name
where group by to_char(record_date,'yyyy-mm-dd hh24:mi') SELECT trunc(sysdate-1) + (ROWNUM - 1) / 24 / 60 AS STAT_TIME
FROM DUAL d
CONNECT BY ROWNUM <= 1440 +(trunc(sysdate, 'MI') - (trunc(sysdate))) * 24 * 60
7、按5分钟
SELECT trunc(sysdate) + (ROWNUM - 1) / 24/12 AS STAT_TIME
FROM DUAL
CONNECT BY ROWNUM <=(trunc(sysdate, 'MI') - (trunc(sysdate))) * 24 * 12
按5分钟统计,中间没数据的时间会缺少
select to_char(j.record_date,'yyyymmdd') as st_date
, sum(j.col_8*j.col_9*j.col_10) as mer_value
, to_char(j.record_date,'hh24') as STAT_HOUR
, floor(to_char(j.record_date,'mi')/5) as min_flag
, '昨日' as report_name
from c , j
where c.col_4 = j.col_4 and c.col_5 = j.col_5 and c.col_6 = j.col_6
and j.actiontype = 217
and j.record_date between trunc(sysdate-1) and trunc(sysdate)
group by to_char(j.record_date,'yyyymmdd'), to_char(j.record_date,'hh24'), floor(to_char(j.record_date,'mi')/5)
ORDER BY st_date, STAT_HOUR, min_flag
select STAT_TIME tdate,
'test' app_id,
goods_type, --c.col_4 as
goods_id, --c.col_5 as
goods_currency_type --c.col_6 as
from
(
SELECT trunc(sysdate-1) + (ROWNUM - 1) / 24 / 12 AS STAT_TIME
FROM DUAL d
CONNECT BY ROWNUM <= 288 +(trunc(sysdate, 'MI') - (trunc(sysdate))) * 24 * 12 + 1
),
(
select
t.goods_type,t.goods_id,t.goods_currency_type
from mid_minutes t
where tdate >= trunc(sysdate) -1
and app_id = 'test'
group by t.goods_type,t.goods_id,t.goods_currency_type
) c
8、按十分钟
SELECT trunc(sysdate) + (ROWNUM - 1) / 24/6 AS STAT_TIME
FROM DUAL
CONNECT BY ROWNUM <=(trunc(sysdate, 'MI') - (trunc(sysdate))) * 24 * 6
按5分钟统计,把时间转换成分钟准点函数
create or replace function trunc_minute(v_date date) return date as begin
return to_number(trunc(to_char(v_date, 'mi')/5))*5/(24*60) + trunc(v_date, 'hh24');
end;
9、按半小时
select to_date(to_char(j.tdate, 'yyyy-mm-dd hh24:') || case
when to_char(j.tdate, 'mi') < '30' then
'00'
else
'30'
end,
'yyyy-mm-dd hh24:mi') as tdate,
j.goods_id,
sum(j.buy_count) as buy_count,
sum(j.total_price) as total_price
from tmp_goods_mis j
where j.tdate >= trunc(sysdate) - 1
group by j.goods_id
to_char(j.tdate, 'yyyy-mm-dd hh24:') || case
when to_char(j.tdate, 'mi') < '30' then
'00'
else
'30'
end
来源:https://www.cnblogs.com/linn/p/4186810.html
Oracle 按不同时间分组统计的更多相关文章
- Oracle按不同时间分组统计
Oracle按不同时间分组统计 Oracle按不同时间分组统计的sql 如下表table1: 日期(exportDate) 数量(amount) -------------- ----------- ...
- ORACLE的分组统计之ROLLUP(一)
Oracle 9i以后,扩展了group by 的功能,能够满足大部分多维数据的分析统计功能,主要表现: 1. rollup,cube,grouping sets 扩展group by字句提供了丰富的 ...
- Oracle Time Model Statistics(时间模型统计)
Oracle数据库从10g開始,启用以时间模型统计为主.命中率为辅等性能度量指标.基于时间模型统计,主要是基于操作类型測量在数据库中花费的时间的统计信息.最重要的时间模型统计是数据库时间.或DB时间. ...
- Oracle数据库从入门到精通-分组统计查询
视频课程:李兴华 Oracle从入门到精通 视频课程学习者:阳光罗诺 视频来源:51CTO学院 整体内容: 统计函数的使用 分组统计查询的实现 对分组的数据过滤 统计函数 在之前我们就学习过一个COU ...
- 010.简单查询、分组统计查询、多表连接查询(sql实例)
-------------------------------------day3------------ --添加多行数据:------INSERT [INTO] 表名 [(列的列表)] --SEL ...
- Dev用于界面按选中列进行分组统计数据源(实用技巧)
如果有用U8的可以明白这个功能就是模仿他的统计功能.我不过是把他造成通用的与适应于DEV的. (效率为6000条数据分组统计时间为3秒左右分组列过多5秒.1000条以下0.几秒,500条下0.00几秒 ...
- DataTable、List使用groupby进行分组和分组统计;List、DataTable查询筛选方法
DataTable分组统计: .用两层循环计算,前提条件是数据已经按分组的列排好序的. DataTable dt = new DataTable(); dt.Columns.AddRange(new ...
- Mysql 根据时间戳按年月日分组统计
Mysql 根据时间戳按年月日分组统计create_time时间格式SELECT DATE_FORMAT(create_time,'%Y%u') weeks,COUNT(id) COUNT FROM ...
- Mysql中较为复杂的分组统计去重复值
这是我的代码: 前提是做了一个view:att_sumbase 首先分开统计每天的中午.下午饭点人数,这时需要分别去除中午和下午重复打卡的人.用了记录集的交,嵌套select的知识. 注意不能直接使用 ...
随机推荐
- 【小白学PyTorch】6 模型的构建访问遍历存储(附代码)
文章转载自微信公众号:机器学习炼丹术.欢迎大家关注,这是我的学习分享公众号,100+原创干货. 文章目录: 目录 1 模型构建函数 1.1 add_module 1.2 ModuleList 1.3 ...
- java基础语法(二)
一.运算符 算数运算符 算数运算符用在数学表达式中,它们的作用和在数学中的作用一样. 操作符 描述 例子 + 两数相加 1+1=2 - 两数相减 2-1=1 * 两数相乘 1*1=1 / 两数相除 1 ...
- Brackets(括号最大匹配问题(区间dp))
We give the following inductive definition of a “regular brackets” sequence: the empty sequence is a ...
- 安装和配置SQL
安装和配置SQL 在终端输入 npm i mysql命令安装SQL(加上-g全局安装) 配置SQL // 1.导入mysql模块 const mysql = require("mysql&q ...
- 索引对单表查询的影响(Cost和consistent gets)
前提:使用system账户登录sql plus. 建表: SQL> create table t2 as select * from dba_objects; 表已创建. 已用时间: 00: 0 ...
- 20190923-10Linux进程线程类 000 018
进程是正在执行的一个程序或命令,每一个进程都是一个运行的实体,都有自己的地址空间,并占用一定的系统资源. ps 查看当前系统进程状态 ps:process status 进程状态 1.基本语法 ps ...
- [oracle/sql]写SQL从学生考试成绩三表中选出五门分综合超过720的尖子
任务:有学生,科目,考分三张表,需要从中筛选出五门考分总和超过720的学生. 科目表最简单只有五条记录: CREATE TABLE tb_course ( id NUMBER not null pri ...
- Odoo10中calendar视图点击事件
有个需求,需要根据该条记录的状态字段来控制点击calendar时是否需要打开form视图,解决方案如下:重写了web_calendar的get_fc_init_options()方法中的eventCl ...
- element ui 分页记忆checked
<el-table :data="tableData" border ref="multipleTableChannel" @selection-chan ...
- 手把手教你配置git和git仓库
今天是git专题的第二篇,我们来介绍一下git的基本配置,以及建立一个git仓库的基本方法. 首先申明一点,本文不会介绍git的安装.一方面是大部分个人PC的系统当中都是已经装好了git的,另外一方面 ...