【发布时间】:2016-08-16 21:44:40
【问题描述】:
我有一张看起来像(user_id, movie_id, start_timestamp, end_timestamp, reason_for_end) 的表。电影可以因为用户关闭它们而结束(reason_for_end == 'user_initiated'),也可以因为演职员表结束(reason_for_end == 'inactivity')。学分总是正好持续两个小时。
我想知道用户在另一部电影处于制作人员阶段时开始观看新电影的总次数。
另外,我还想知道用户观看一部电影的总时间,而另一部电影的演职员表仍在滚动。
编辑: 给定表格的示例:
user_id movie_id start_timestamp end_timestamp reason_for_end
1 1 2012-11-18 05:53:36.0 2012-11-18 12:46:40.0 'inactivity'
1 2 2012-11-18 11:34:23.0 2012-12-18 13:21:57.0 'user_initiated'
示例结果表1:
user_id times_new_started_while_old_in_credits
1 1
示例结果表2:
user_id total_overlap_in_seconds
1 4320
【问题讨论】:
-
似乎您只需要设置正确的 SELF JOIN 或 WHERE IN 或 WHERE EXISTS 子选择语句。但是您的问题并不完全清楚,也许您可以提供一些示例数据和基于该示例的所需结果,这将帮助我们理解所需的逻辑。 meta.stackoverflow.com/questions/271055/…
-
刚回来,问题的更新很好,看起来 Robert 为您提供了一些东西,希望能让您走上正轨。
标签: sql datetime time concurrency hiveql