[英]Creating a Time Range in SQL
我想在Hive中创建一个包含三列的表(表A)。 该表的时间从5AM开始到第二天2AM结束。 每行比上一行增加5分钟。
前两列是这个(我不知道如何生成它)。
start_time | end_time
5:00:00 | 5:05:00
5:05:01 | 5:10:00
...
23:55:01 | 00:00:00
...
1:55:01 | 02:00:00
有谁知道如何做以上?
摆脱一些背景:
创建表A后,我想使用另一个具有时代性的表(表B)代表每个客户拜访的记录,提取必要的时/分/秒信息,然后提供总和表A第三列中每个时间间隔的访问者计数,例如“ customer_count”。
我想我知道要为表A的“ customer_count”列进行计算,但是,我需要帮助的是在表A中创建前两列。
您可以采用另一种方法:
(time-start_time) / 60 / 5
计算) end_time
列 像这样:
select from_unixtime(<start time> + period*60*5),
from_unixtime(<start time> + (period+1)*60*5),
count from
(select (time-<start time>)/(60*5) as period,count(*) as count from tableB
where time >= <start time> and time <= <end time>
group by (time-<start time>)/(60*5) ) inner
请注意,您不会收到零计数的时间(一段时间内无访问次数)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.