oracle函数按周,关于oracle按日周月分组统计以及next_day()函数详解
1、概述
工作中遇到如下问题:统计周期内关键词数,而这里的周期内最常用的就是日周月,日月比较容易处理,
周的话可以通过next_day()函数实现。
2、实例问题
日下,有一张表lij_test包括两个字段: test_time DATE,city varchar2(4).
下面我想统计,不同周期范围内的不同城市的记录总数。这里的不同周期为日周月。
该问题的核心就是处理日期时间,即如何让同一周期范围内的时间返回同一个值,且该值是唯一的。
如下,每个期间将会提供两种方式,需要指出的是,trunc()函数总是效率高。
2.1按照日统计
--效率高
select trunc(test_time,'DD') time,count(1) ctfromljb_testgroup by trunc(test_time,'DD')order by time;
或者
select to_char(test_time,'YYYYMMDD') time,count(1) ctfromljb_testgroup 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) ctfromljb_testgroup by trunc(test_time,'iw')order by time;
或者
select trunc(next_day(test_time-7,2),'DD') time ,count(1) ctfromljb_testgroup by trunc(next_day(test_time-7,2),'DD')order by time;
2.3按月统计
按月统计和按天统计一样
select trunc(test_time,'MM') time,count(1) ctfromljb_testgroup by trunc(test_time,'MM')order by time;
或者
select to_char(test_time,'YYYYMM') time,count(1) ctfromljb_testgroup by to_char(test_time,'YYYYMM')order by time;
oracle函数按周,关于oracle按日周月分组统计以及next_day()函数详解相关推荐
- Oracle按日周月分组统计,及next_day()函数详解
1.概述 工作中遇到如下问题:统计周期内关键词数,而这里的周期内最常用的就是日周月. 日月比较容易处理,周的话可以通过next_day()函数实现. 2.实例问题 如下,有一张表ljb_test,包括 ...
- 【肝帝一周总结:全网最全最细】☀️Mysql 索引数据结构详解与索引优化☀️《❤️记得收藏❤️》
[肝帝一周总结:全网最全最细]☀️Mysql 索引数据结构详解与索引优化☀️<❤️记得收藏❤️> 目录
- 暗黑三使用服务器维护,暗黑3官网3月26日维护公告 虚拟战网点数XTS使用详解
原标题:暗黑3官网3月26日维护公告 虚拟战网点数XTS使用详解 暗黑3官网3月26日维护公告 虚拟战网点数XTS使用详解 暗黑破坏神3将于明日凌晨进行维护,维护时间预计10小时,届时将无法上线,请各 ...
- 碧蓝航线8.20服务器维护,碧蓝航线8月20日更新内容及新玩法活动详解介绍
碧蓝航线8月20日更新了什么内容?游戏在今天上线了限时活动,还有全新的角色哦!很多小伙伴们可能还不知道具体有哪些活动和玩法吧!下面是小编带来的攻略解析,感兴趣的可以一起来关注下哦! 碧蓝航线8月20日 ...
- Oracle:左连接、右连接、全外连接、(+)号详解
目录 Oracle 左连接.右连接.全外连接.(+)号详解 1.左外连接(LEFT OUTER JOIN/ LEFT JOIN) 2.右外连接(RIGHT OUTER JOIN/RIGHT JOIN) ...
- linux getline函数用法,Linux文本处理三剑客之awk学习笔记05:getline用法详解
getline用法详解 在默认情况下,awk支持从文件或者STDIN中读取数据.我们也可以使用getline来灵活读取数据,例如在main代码块执行过程中读取某个非待处理文件的数据,或者从某个读取某个 ...
- 分区函数Partition By的与row_number()的用法以及与排序rank()的用法详解(获取分组(分区)中前几条记录)...
partition by关键字是分析性函数的一部分,它和聚合函数不同的地方在于它能返回一个分组中的多条记录,而聚合函数一般只有一条反映统计值的记录,partition by用于给结果集分组,如果没有指 ...
- php周签到功能思路,php实现签到功能的方法实例分析详解
这篇文章主要介绍了php实现签到功能的方法,结合实例形式分析了php基于数据库及时间判断操作实现签到功能的相关技巧,需要的朋友可以参考下 本文实例讲述了php实现签到功能的方法.分享给大家供大家参考, ...
- 【Oracle】开窗函数、分组排序 row_number\partition by 详解
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.row_number是什么? 二.partition by是什么? 三.加上条件筛选你想要的记录 前言 提示:这里 ...
- oracle 拼接 长度,oracle操作字符串:拼接、替换、截取、查找、长度、判断详解...
1.拼接字符串 1)可以使用"||"来拼接字符串 select '拼接'||'字符串' as str from dual 2)通过concat()函数实现 select conca ...
最新文章
- python操作三大主流数据库(6)python操作mysql⑥新闻管理后台功能的完善(增、ajax异步删除新闻、改、查)...
- 解决 minicom 不能接收键盘输入问题
- 查看静态库(.lib)和动态库(.dll)的导出函数的信息
- 图解算法学习笔记(四):快速排序
- 如何在矩池云上运行FinRL-Libray股票交易策略框架
- nginx实战(五) 正向代理支持https
- excel几个数相加等于某个数_EXCEL如何求出哪几个单元格里的数字之和等于某个特定值...
- html anki编辑器,打造你的专属单词本——Anki 初探(无痛入门)
- C++学习第九课--类的成员函数、对象复制与私有成员笔记
- MSN 无法登陆,错误代码: 80072efd,如何解决
- linux修改mac地址_如何(以及为什么)在Windows,Linux和Mac上更改您的MAC地址
- 如何删除windows 10系统桌面的所有快捷图标
- 鸟哥Linux学习之——man page说明
- WSL下源码阅读工具LXR(Linux Cross-Referencer)的配置
- 国科大学习资料--人工智能原理与算法-第十三次作业解析(学长整理)
- 高通SDX55平台:adb功能异常
- 计算机铃声在线使用方法,史上最全的iPhone自定义铃声教程 无需电脑也能搞定 小白必看!...
- win10 uwp 关联文件
- 神经网络中定义网络模型中的forward方法
- 戴尔计算机主机型号,戴尔电脑在哪看型号_戴尔电脑型号怎么看
热门文章
- Linux下的mplayer播放器移植与使用
- outlook邮件通过python发送_怎么发送邮箱-python调用outlook发送邮件的超详细操作步骤...
- 20145236 《Java程序设计》第4周学习总结
- 【移动网络】5G NR: 压缩设计与帧结构等核心操作特性
- 2018冬令营模拟测试赛(十九)
- 听说股票是暴利?花了一晚上时间,用Python写了个股票提醒系统
- Nature:Jeff Dangl团队揭示贪噬菌属在微生物组中维持根的生长
- springboot内嵌tomcat如何优雅开启http端口
- 关键字synchronized与volatile详解
- 【SCIENTIFIC AMERICAN December 2019】【NUCLEAR PHYSICS】Proton Size Puzzle