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()函数详解相关推荐

  1. mysql分季度统计数据,mysql按日周月季度统计数据

    mysql按日周月季度统计数据 mysql按日.周.月.季度统计数据 1.使用DATE_FORMAT做等值条件查询 2.DATE_FORMAT函数语法,参考w3school 3.可使用格式 4.使用示 ...

  2. oracle 按日输出 取整数,Oracle按日周月分組統計,及next_day()函數詳解

    1.概述 工作中遇到如下問題:統計周期內關鍵詞數,而這里的周期內最常用的就是日周月. 日月比較容易處理,周的話可以通過next_day()函數實現. 2.實例問題 如下,有一張表ljb_test,包括 ...

  3. Oracle 的next_day函数详解

    先放代码: --当前时间:2022-07-13,星期三 SELECT SYSDATE "星期3", NEXT_DAY(SYSDATE,1) "(星期日)", N ...

  4. MACD多周期共振指标公式,日周月共振

    有人问多周期MACD怎么写,编写指标的难度其实不大,主要问题是解决多周期MACD显示的问题.日线.周线.月线三个周期,每个周期都有快线DIF和慢线DEA两条线,一共6条,怎么在副图上清晰显示出来. 一 ...

  5. java8 日期范围内 日/周/月/季度/年 的日期结果集

    java8 日期范围内 日/周/月/季度/年 的日期结果集 /*** 根据时间范围列出所有日/周/月/季/年** @Author Moqi* @Date 2020/4/30* @Version V1. ...

  6. php文章周月总排行榜怎么实现,帝国cms7.0实现日 周 月点击排行的方法

    本文将为您介绍的是帝国cms7.0实现日 周 月点击排行的方法,具体操作方法请看下文: 新增信息的排行不太符合我的要求.就自己琢磨了一套全站信息的月点击.周点击排行.需要新增几个字段及修改文件.下面开 ...

  7. KDJ日周月金叉共振指标

    昨天介绍了MACD多周期共振指标公式,KDJ通过类似的写法,也可以共振.本文介绍的KDJ日周月金叉共振指标包含日周金叉共振.日月金叉共振.周月金叉共振.日周月金叉共振四种类型. 需要注意的问题依然是周 ...

  8. 暗黑三使用服务器维护,暗黑3官网3月26日维护公告 虚拟战网点数XTS使用详解

    原标题:暗黑3官网3月26日维护公告 虚拟战网点数XTS使用详解 暗黑3官网3月26日维护公告 虚拟战网点数XTS使用详解 暗黑破坏神3将于明日凌晨进行维护,维护时间预计10小时,届时将无法上线,请各 ...

  9. 碧蓝航线8.20服务器维护,碧蓝航线8月20日更新内容及新玩法活动详解介绍

    碧蓝航线8月20日更新了什么内容?游戏在今天上线了限时活动,还有全新的角色哦!很多小伙伴们可能还不知道具体有哪些活动和玩法吧!下面是小编带来的攻略解析,感兴趣的可以一起来关注下哦! 碧蓝航线8月20日 ...

最新文章

  1. 超参数momentum与weight-decay的作用
  2. javascript-----DOM文档对象模型
  3. nodeJS下利用mongdb进行数据库操作
  4. php str_replace 字符串替换
  5. elementUI的DatePicker+DateTimePicker组件的自定义日期禁用
  6. P3193 [HNOI2008]GT考试
  7. 淘宝发布年度十大同款:钟南山哑铃、奥特曼变身器、嫦娥五号暖宝宝入选
  8. 工作好多年可能还未真正了解接口和抽象类
  9. Sql分页两种常用算法
  10. VS2017 控件添加关联变量
  11. LeetCode(976)——三角形的最大周长(JavaScript)
  12. Go语言的素数对象编程实现及其使用
  13. spring框架mvc框架_5篇Spring框架书籍,通过MVC学习Spring
  14. Nokia Widget 应用开发培训笔记
  15. [转]enable spice html5 console access in openstack kilo(centos)
  16. VTK读取rawdata
  17. c语言 error c2562,C语言之关键字(二) void,const
  18. azkaban 与 java任务_任务调度工具oozie和azkaban的对比
  19. OLYMP‘ARTS 2023奥艺大会中国推介会在北京盛大举行
  20. UI设计中一致性为什么这么重要

热门文章

  1. 透过源码领悟GCC到底在干些什么
  2. 关于label smoothing(标签平滑)
  3. 37种传感器-树莓派开发-7-震动开关
  4. STM32CubeMX GCC工程Makefile内容详解
  5. 2022年油分散剂市场前景分析及研究报告
  6. iccv2020论文汇总_【论文相关】历年CVPR、ICCV、ECCV论文合集下载
  7. linux安装hive教程
  8. 扬大计算机考研分数线,扬州大学2021考研分数线已公布
  9. win7打开计算机死机,Windows7电脑总是频繁自己启动或死机的解决方法
  10. 用gsl计算非方阵矩阵除法--解线性方程