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

Sql 在蜂箱中,计算两次之间的时间,sql,hql,hive,Sql,Hql,Hive,在hive中,我有一个包含很多列的表,其中两列是开始时间和结束时间 我每次都要数一数表上的数字 一张桌子是这样的: 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

在hive中,我有一个包含很多列的表,其中两列是开始时间和结束时间

我每次都要数一数表上的数字

一张桌子是这样的:

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
非常感谢并欢迎任何帮助。

在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

我使用select在hql中进行了尝试,但似乎很难做到这一点。在c/c++中,100k的类震级数组似乎太大了。
2011.04.26 10:19:17 9
----
2011.04.26 10:19:17 8
2011.04.26 10:19:17有9个用户,除了10:19:17的一个用户。为什么是8?对我来说似乎是同一个问题,我在c中实现了它。但hadoop中的需求。遗憾的是,我认为这在Hive中不起作用。来自Hive语言手册:“Hive不支持非相等条件的联接条件,因为很难将此类条件表示为映射/减少作业。”@LukasVermeer,噢,谢谢。在写这篇文章之前,我看到了“sql”标记。