在Oracle中,Mysql中以及Hive中,SQL实现同样的功能有时候可能要遵循不同的语法结构,尤其在日期操作方面区别较为明显。接下来,将Oracle中常用的周期统计梳理出来。

  • 1. 按天统计

Oracle中通过to_char()函数来操作日期变量,通过其中的格式参数配置输出日期的格式。格式参数值为’yyyymmdd’时,将日期统一转换为yyyymmdd(年月日)的方式输出。

select to_char(created_time,'yyyymmdd') as day,count(mobile_no)
from table
where to_char(created_time,'yyyymmdd') >= 20181201
group by to_char(created_time,'yyyymmdd')
order by min(created_time) asc

输出的结果如下所示:

  • 2. 按自然周统计
    to_char()函数的格式参数值为’iw’时,表示按自然周方式输出日期在全年中的周数排序值,自然周即日历上显示的周排列结果。如果只输出周数,不便于排查数据,所以按自然周进行聚合时,最好能把该自然周的起始日期或结束日期显示出来,使结果一目了然。
select to_char(created_time,'iw') as week, min(created_time), count(mobile_no)
from table
where to_char(created_time,'yyyymmdd') >= 20181201
group by to_char(created_time,'iw')
order by min(created_time) asc

结果如下所示,其中week表示周数。通过MIN(created_time)可以展示出每个自然周的起始日期:

  • 3. 按月统计

to_char()函数的格式参数值为’yyyymm’时可输出格式为yyyymm(年月)的月份统计结果。

select to_char(created_time,'yyyymm') as Month, count(mobile_no)
from table
where to_char(created_time,'yyyymm') >= 20181201
group by to_char(created_time,'yyyymm')

其结果如下所示:

  • 4. 按季统计

to_char()的格式参数值为’q’,可实现按季度输出统计结果。

select to_char(created_time,'q') as q,count(mobile_no)
from table
where to_char(created_time,'yyyymmdd') >= 20180101
group by to_char(created_time,'q')
order by min(created_time) asc

其结果如下所示,Q表示季度。

  • 5. 按年统计
    to_char()函数的参数值为’yyyy’时可以实现按年输出统计结果。
select to_char(created_time,'yyyy') as y, count(mobile_no)
from table
where to_char(created_time,'yyyy') >= 2016
group by to_char(created_time,'yyyy')
order by y asc

其输出结果如下所示:

Oracle中按天、自然周、月、季、年周期统计相关推荐

  1. oracle 列 连续,oracle中某列连续相同值的记录数统计(一个简单的例子)

    oracle中某列连续相同值的记录数统计(一个简单的例子) row_number() OVER (PARTITION BY COL1 ORDER BY COL2) 表示根据COL1分组,在分组内部根据 ...

  2. Oracle数据库获取当前自然周,当前周的起始和结束日期

    SELECT to_char(sysdate,'iw') from dual; --本周是第几个自然周SELECT to_char(sysdate,'yyyy') into v_sbzq_nf fro ...

  3. oracle中判断是否为季末,Oracle中取月初,月末,季初,季末及年初,年末时间总结...

    在工作中通常会用到月初,月末,季初,季末,年初及年末的时间,在这里做一个简单的总结: 1.取周的开始时间和结束时间: 开始时间(以星期一为开始时间): SQL>       select  tr ...

  4. oracle季初,Oracle中取月初,月末,季初,季末及年初,年末时间总结

    在工作中通常会用到月初,月末,季初,季末,年初及年末的时间,在这里做一个简单的总结: 1.取周的开始时间和结束时间: 开始时间(以星期一为开始时间): SQL> select trunc(sys ...

  5. Oracle中取月初,月末,季初,季末及年初,年末时间总结

    在工作中通常会用到月初,月末,季初,季末,年初及年末的时间,在这里做一个简单的总结: 1.取周的开始时间和结束时间: 开始时间(以星期一为开始时间): SQL>       select  tr ...

  6. oracle中取月初,月末,季初,季末及年初,年末时间

    1.取周的开始时间和结束时间: 开始时间(以星期一为开始时间):SQL> select trunc(sysdate,'D')+1 from dual;结束时间(以星期日为结束时间):SQL> ...

  7. oracle中求下月同日,以月计算的期限,自本月某日至下月同日为一个月。

    明代中叶以后,月月某改编志>为<东周清代列国放再蔡元,月月某平话故事最早本<>等七国列国来源于宋元讲春秋史话,国志定为<列余邵鱼编传>,改编国志新列为<将其龙 ...

  8. oracle中怎样获取一周的日期,Oracle如何获取某年每月第N周星期X的所有日期

    Oracle如何获取某年每月第N周星期X的所有日期 要求:列出2012年每月第二周星期二的日期 两种理解: www.2cto.com 1.认为每周第一天为星期一(中国习惯),且需求为第二周周二(非第二 ...

  9. mysql查询最近一个自然周_自然周与自然月的Hive统计SQL

    按照周或者月统计活跃数: 周: SELECT week, COUNT(DISTINCT pin), business_type FROM ( SELECT DISTINCT user_log_acct ...

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

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

最新文章

  1. 增量加载(Incremental Loads)
  2. 如果让AI根据文字画「抽象画」,那得成什么样?|DeepMind新算法
  3. java内存区域_JVM学习之—Java内存区域
  4. Redis客户端命令行redis-cli操作
  5. 650c公路车推荐_2020最具性价比的中高端公路整车盘点
  6. leetcode15 三数之和
  7. python凯撒密码实现_密码:凯撒密码及其Python实现
  8. php文章自动采集器,使用php蓝天采集器抓取今日头条ajax的文章内容
  9. liniux备忘录-磁盘配额与进阶文件系统管理
  10. Docker的安装和操作(虚拟机+linux系统)
  11. Shell下syntax error: operand expected (error token is “-”)
  12. 本科生、研究生查询框架
  13. 高一信息技术课件python编程_练习1--高一信息技术--数据与计算(Python版)
  14. windows xp sp2的产品密钥
  15. 域自适应(Domain Adaptation)简介
  16. Java SE 第三讲(原生数据类型使用陷阱 Pitfall of Primitive Data Type)
  17. 微信小程序里面的单步调试和变量查看
  18. 碎碎点点-积土成山,风雨兴焉;积水成渊,蛟龙生焉
  19. Markdown公式(二)
  20. greenDao框架浅入深出

热门文章

  1. 解锁黑科技!辅助驾驶系统为卡车安全行驶保驾护航
  2. antv g6多次渲染问题解决
  3. UnboundLocalError: local variable ‘Num_fSu‘ referenced before assignment
  4. ao能连接oracle吗,[转载]使用AO连接ORACLE数据库
  5. SpringBoot测试类不需要加@RunWith?
  6. 【python】使用pyautogui进行屏幕捕捉实现自动化操作
  7. 微软project服务器搭建,安装和配置 Project Server 2010
  8. 华为服务器2488H V6的ibmc接口配置
  9. 漫画研发之九:浑水好摸鱼
  10. 面向对象程序设计之类和对象初级试题