在蜂巢中,计算两次之间的时间

时间:2013-05-16 14:49:46

标签: sql hql hive

在hive中,我有一个包含大量列的表,其中两列是begin_time,end_time。

我需要计算每次的数字

表的一部分是这样的:

begin_time                  end_time
2011.04.26 10:19:06^A2011.04.26 10:20:22
2011.04.26 10:19:08^A2011.04.26 10:21:49
2011.04.26 10:19:08^A2011.04.26 11:18:46
2011.04.26 10:19:09^A2011.04.26 12:08:36
2011.04.26 10:19:09^A2011.04.26 11:00:16
2011.04.26 10:19:11^A2011.04.26 10:19:17
2011.04.26 10:19:12^A2011.04.26 10:46:21
2011.04.26 10:19:13^A2011.04.26 10:55:43
2011.04.26 10:19:17^A2011.04.26 10:19:41
2011.04.26 10:19:18^A2011.04.26 10:34:41

我想要的结果是在特定时间有多少人。

e.g。在2011.04.26 10:19:08,当然有3位访客在19:06有一位,19:08有2位。

和2011.04.26 10:19:18是9,课程十,但一个人离开2011.04.26 10:19:17

片的理想结果是

2011.04.26 10:19:06 1
2011.04.26 10:19:08 3
2011.04.26 10:19:09 5
2011.04.26 10:19:11 6
2011.04.26 10:19:12 7
2011.04.26 10:19:13 8
2011.04.26 10:19:17 9
2011.04.26 10:19:18 9

非常感谢和欢迎任何帮助。

1 个答案:

答案 0 :(得分:0)

在sql中:

SELECT v.begin_time AS "time",
       COUNT(*) AS "visitors"
  FROM visits v
  JOIN visits o
       ON v.begin_time BETWEEN o.begin_time AND o.end_time
 GROUP BY 1