问题内容

  • 今天遇到了一个需求,需求就是时间段为5分钟的统计.有数据的时间戳.对成交单量进行统计.

想法思路

  • 因为数据有时间戳,可以通过from_unixtime()来获取具体的时间.
  • 有了具体的时间,就可以用minute()函数获取对应数据所在的分钟.(minute()获取到的分钟为字符串,需要进行类型转换cast())
  • 那么怎么通过获取到的minute来进行分组呢?
    • 想法 00 - 05 应该分到一组, 05 - 10 应该分到第二组,依次类推.
    • 用minute 整除 5 的话, 00 - 05 整除 5 都为 0, 05 - 10 整除 5 都为1,依次类推
    • 这样就可以把每5分钟的数据都分到了一组.
    • 注意,hive中的 minute / 5 的话并能整除,所以需要函数向下取整,用floor()函数来完成.
  • 虽然把分钟分开了,但是并不能仅仅按照分钟来分组,这样就把每个小时的相同分组分成一组,所以每个小时之间也是一个聚合维度.

具体步骤

  • 先通过时间戳取到数据对应的小时和分钟.

    • 小时 from_unixtime(time,'yyyyMMdd HH')
    • 分钟 minute(from_unixtime(time))
  • 对分钟进行整除5来完成分段.(同时需要对获取到的minute进行类型转换)
    • floor(cast(minute(from_unixtime(time)) as int) / 5)
    • 如果要是变时间段的话,分钟为单位,除以相应的时间段就行.10分钟就整除10,15分钟就整除15.
  • 对小时和(分钟整除的结果)进行分组进行统计.

示例SQL

select
case
when sort in (0,1) then concat(substring(time,10,11),':0',sort*5)
else concat(substring(time,10,11),':',sort*5)
end, --对时间格式进程处理,把小时和分钟合并 例如,hour =2018111 00,sort = 1 -> 00:05
num --统计的字段
from(
select time,sort,count(distinct purchase_id) as num --统计
from
(
select purchase_id,--需要统计的字段
from_unixtime(add_time,'yyyyMMdd HH') as time, --取小时
floor(cast(minute(from_unixtime(add_time)) as int) / 5 ) as sort --按分钟归类
from kkgoo.kk_order_association
where from_unixtime(add_time,'yyyyMMdd') = 20181111 --筛选条件
and status not in ('unpayed', 'close', 'timeout_pay', 'timeout_lock')
) t
group by 1,2 --对小时和分钟整除结果进行分组
) t;

【hive】时间段为五分钟的统计的更多相关文章

  1. Zabbix中获取各用户告警媒介分钟级统计

    任务内容: 获取Zabbix各用户告警媒介分钟级统计,形成趋势图,便于观察各用户在每分钟收到的告警数量,在后续处理中,可以根据用户在某时间段内(例如3分钟内)收到的邮件总数,来判断是否有告警洪水的现象 ...

  2. 五分钟DBA:浅谈伪分布式数据库架构

    [IT168 技术]12月25日消息,2010互联网行业技术研讨峰会今日在上海华东理工大学召开.本次峰会以“互联网行业应用最佳实践”为主题,定位于互联网架构设计.应用开发.应用运维管理,同时,峰会邀请 ...

  3. shell脚本每五分钟执行一次可执行程序(nohup)

    两种解决方案:个人推荐第二种,使用crontab来定时执行任务   1.shell代码如下: nohup command &. 解释: 后台永久运行command命令. (nohup表示后台永 ...

  4. 用五分钟重温委托,匿名方法,Lambda,泛型委托,表达式树

    这些对老一代的程序员都是老生常谈的东西,没什么新意,对新生代的程序员却充满着魅力.曾经新生代,好多都经过漫长的学习,理解,实践才能掌握委托,表达式树这些应用.今天我尝试用简单的方法叙述一下,让大家在五 ...

  5. [分享] 史上最简单的封装教程,五分钟学会封装系统(以封装Windows 7为例)

    [分享] 史上最简单的封装教程,五分钟学会封装系统(以封装Windows 7为例) 踏雁寻花 发表于 2015-8-23 23:31:28 https://www.itsk.com/thread-35 ...

  6. JVM内存管理------GC算法精解(五分钟让你彻底明白标记/清除算法)

    相信不少猿友看到标题就认为LZ是标题党了,不过既然您已经被LZ忽悠进来了,那就好好的享受一顿算法大餐吧.不过LZ丑话说前面哦,这篇文章应该能让各位彻底理解标记/清除算法,不过倘若各位猿友不能在五分钟内 ...

  7. 转帖:用五分钟重温委托,匿名方法,Lambda,泛型委托,表达式树

    用五分钟重温委托,匿名方法,Lambda,泛型委托,表达式树 这些对老一代的程序员都是老生常谈的东西,没什么新意,对新生代的程序员却充满着魅力.曾经新生代,好多都经过漫长的学习,理解,实践才能掌握委托 ...

  8. 《sort帮你排序》-linux命令五分钟系列之二十六

    本原创文章属于<Linux大棚>博客,博客地址为http://roclinux.cn.文章作者为rocrocket. 为了防止某些网站的恶性转载,特在每篇文章前加入此信息,还望读者体谅. ...

  9. 《sed的流艺术之四》-linux命令五分钟系列之二十四

    本原创文章属于<Linux大棚>博客,博客地址为http://roclinux.cn.文章作者为rocrocket. 为了防止某些网站的恶性转载,特在每篇文章前加入此信息,还望读者体谅. ...

随机推荐

  1. teamviewer and openconnect-gp (globalprotect) in ubuntu

    wget https://download.teamviewer.com/download/teamviewer_i386.deb sudo dpkg -i teamviewer_i386.deb a ...

  2. DNS的MX记录和CNAME记录(转)

    MX记录就是邮件域名对邮件服务器(域名)的映射.可以映射到多个邮件服务器,发送时会选择一台发送. 拿到新域名后,还要再查找DNS,将域名转不ip 原文:http://my.oschina.net/u/ ...

  3. PhotoSwipe中文API(二)

    配置 选项是在键 - 值对添加作为参数传递给PhotoSwipe构造,例如通过: var options = { index: 3, escKey: false, // ui option timeT ...

  4. python第三方模块之paramiko模块

    目录: paramiko模块介绍 paramiko模块安装 paramiko模块使用 一.paramiko模块介绍 paramiko是一个用于做远程控制的模块,使用该模块可以对远程服务器进行命令或文件 ...

  5. TeamViewer远程唤醒主机实战教程(多图)

    前言:首先感谢大家来到这里.这篇文章其实算是一个教程,文章中涉及到了TeamViewer,Mac OS X,TP-Link家用路由器,以及花生壳DDNS,对于新手而言内容可能稍微有些多,但我相信按照我 ...

  6. 20155207 2016-2017-2 《Java程序设计》第八周学习总结

    20155207 2016-2017-2 <Java程序设计>第八周学习总结 教材学习内容总结 第15章 通用API 15.1 日志 15.1.1 日志API简介 java.util.lo ...

  7. 如何有规律的备份 WordPress 博客(转)

    转自:http://blog.wpjam.com/m/backup-your-blog-regularly/   我们都知道备份 WordPress 博客应该是规律性的操作,但是事实上往往我们都会因为 ...

  8. 随机生成气泡碰撞(原生js)

    <!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>随 ...

  9. object类之toString方法

    object是所有类的基类 如果没有使用extends关键字指明其基类,则默认基类为object类 public class Person{ ........ } 等价于: public class ...

  10. 实验三 敏捷开发与XP实践20145204和20145236

    实验三 敏捷开发与XP实践20145204和20145236 实验名称 敏捷开发与XP实践 实验内容 XP基础 XP核心实践 学会使用git 学会代码的重构 实现团队合作 团队分工 20145204: ...