Oracle按日周月分组统计,及next_day()函数详解
1.概述
工作中遇到如下问题:统计周期内关键词数,而这里的周期内最常用的就是日周月。
日月比较容易处理,周的话可以通过next_day()函数实现。
2.实例问题
如下,有一张表ljb_test,包括两个字段:test_time DATE,city varchar2(4)。
下面我想统计,不同周期范围内的不同城市的记录总数。这里的不同周期为日周月。
该问题的核心就是处理日期时间,即如何让同一周期范围内的时间返回同一个值,且该值是唯一的。
如下,每个期间将会提供两种方式,需要指出的是,trunc()函数总是效率高。
2.1按照日统计
--效率高
select trunc(test_time,'DD') time,count(1) ct
from ljb_test
group by trunc(test_time,'DD')
order by time;
或者
select to_char(test_time,'YYYYMMDD') time,count(1) ct
from ljb_test
group by to_char(test_time,'YYYYMMDD')
order by time;
以此类推按照小时统计,把时间处理为
trunc(test_time,’HH24’)
或者
to_char(test_time,’YYYYMMDD HH24’)
2.2按照周统计
按照周统计问题的核心,就是如何让同一周的时间返回同一值。
Oracle提供了一个函数next_day()
next_day(date,n):计算date时间后下一个星期几的时间。n可以传递字符串,如’星期一’,’monday’。还可以传递数值,1代表周日。
因为语言问题,这里推荐使用数字试下。
有这个函数,就可以实现了。
只需要对日期做如下处理:
trunc(next_day(test_time-7,2),’DD’)
其实trunc()函数可以直接实现返回周一。
trunc(test_time,’iw’)
之所以介绍next_day()函数,如果我们传入的日期字段是varchar2类型的,那么两种方式简易成都一样。
如下,把完成的SQL写出:
--效率高
select trunc(test_time,'iw') time, count(1) ct
from ljb_test
group by trunc(test_time,'iw')
order by time;
或者
select trunc(next_day(test_time-7,2),'DD') time ,count(1) ct
from ljb_test
group by trunc(next_day(test_time-7,2),'DD')
order by time;
2.3按月统计
按月统计和按天统计一样
--效率高
select trunc(test_time,'MM') time,count(1) ct
from ljb_test
group by trunc(test_time,'MM')
order by time;
或者select to_char(test_time,'YYYYMM') time,count(1) ct
from ljb_test
group by to_char(test_time,'YYYYMM')
order by time;
Oracle按日周月分组统计,及next_day()函数详解相关推荐
- mysql分季度统计数据,mysql按日周月季度统计数据
mysql按日周月季度统计数据 mysql按日.周.月.季度统计数据 1.使用DATE_FORMAT做等值条件查询 2.DATE_FORMAT函数语法,参考w3school 3.可使用格式 4.使用示 ...
- oracle 按日输出 取整数,Oracle按日周月分組統計,及next_day()函數詳解
1.概述 工作中遇到如下問題:統計周期內關鍵詞數,而這里的周期內最常用的就是日周月. 日月比較容易處理,周的話可以通過next_day()函數實現. 2.實例問題 如下,有一張表ljb_test,包括 ...
- Oracle 的next_day函数详解
先放代码: --当前时间:2022-07-13,星期三 SELECT SYSDATE "星期3", NEXT_DAY(SYSDATE,1) "(星期日)", N ...
- MACD多周期共振指标公式,日周月共振
有人问多周期MACD怎么写,编写指标的难度其实不大,主要问题是解决多周期MACD显示的问题.日线.周线.月线三个周期,每个周期都有快线DIF和慢线DEA两条线,一共6条,怎么在副图上清晰显示出来. 一 ...
- java8 日期范围内 日/周/月/季度/年 的日期结果集
java8 日期范围内 日/周/月/季度/年 的日期结果集 /*** 根据时间范围列出所有日/周/月/季/年** @Author Moqi* @Date 2020/4/30* @Version V1. ...
- php文章周月总排行榜怎么实现,帝国cms7.0实现日 周 月点击排行的方法
本文将为您介绍的是帝国cms7.0实现日 周 月点击排行的方法,具体操作方法请看下文: 新增信息的排行不太符合我的要求.就自己琢磨了一套全站信息的月点击.周点击排行.需要新增几个字段及修改文件.下面开 ...
- KDJ日周月金叉共振指标
昨天介绍了MACD多周期共振指标公式,KDJ通过类似的写法,也可以共振.本文介绍的KDJ日周月金叉共振指标包含日周金叉共振.日月金叉共振.周月金叉共振.日周月金叉共振四种类型. 需要注意的问题依然是周 ...
- 暗黑三使用服务器维护,暗黑3官网3月26日维护公告 虚拟战网点数XTS使用详解
原标题:暗黑3官网3月26日维护公告 虚拟战网点数XTS使用详解 暗黑3官网3月26日维护公告 虚拟战网点数XTS使用详解 暗黑破坏神3将于明日凌晨进行维护,维护时间预计10小时,届时将无法上线,请各 ...
- 碧蓝航线8.20服务器维护,碧蓝航线8月20日更新内容及新玩法活动详解介绍
碧蓝航线8月20日更新了什么内容?游戏在今天上线了限时活动,还有全新的角色哦!很多小伙伴们可能还不知道具体有哪些活动和玩法吧!下面是小编带来的攻略解析,感兴趣的可以一起来关注下哦! 碧蓝航线8月20日 ...
最新文章
- 超参数momentum与weight-decay的作用
- javascript-----DOM文档对象模型
- nodeJS下利用mongdb进行数据库操作
- php str_replace 字符串替换
- elementUI的DatePicker+DateTimePicker组件的自定义日期禁用
- P3193 [HNOI2008]GT考试
- 淘宝发布年度十大同款:钟南山哑铃、奥特曼变身器、嫦娥五号暖宝宝入选
- 工作好多年可能还未真正了解接口和抽象类
- Sql分页两种常用算法
- VS2017 控件添加关联变量
- LeetCode(976)——三角形的最大周长(JavaScript)
- Go语言的素数对象编程实现及其使用
- spring框架mvc框架_5篇Spring框架书籍,通过MVC学习Spring
- Nokia Widget 应用开发培训笔记
- [转]enable spice html5 console access in openstack kilo(centos)
- VTK读取rawdata
- c语言 error c2562,C语言之关键字(二) void,const
- azkaban 与 java任务_任务调度工具oozie和azkaban的对比
- OLYMP‘ARTS 2023奥艺大会中国推介会在北京盛大举行
- UI设计中一致性为什么这么重要