gpt4 book ai didi

mysql - 根据 Hive 中另一个表中的时间戳在表中查找记录

转载 作者:行者123 更新时间:2023-11-29 07:29:06 25 4
gpt4 key购买 nike

我在 HIVE 中有两个表,如下所示。

表A

+-----+---------+-----------+------------------------+------------------------+
| id | event | c_name | c_date | test_time |
+-----+---------+-----------+------------------------+------------------------+
| 1 | click | abc | 2018-07-02 22:36:32.0 | 2018-06-22 22:36:32.0 |
| 2 | click | abc 123 | 2018-07-01 22:36:32.0 | 2018-06-01 22:36:32.0 |
| 2 | click | abc | 2018-07-02 23:46:32.0 | 2018-07-02 23:46:32.0 |
| 3 | done | abc 345 | 2018-07-22 23:56:32.0 | 2018-07-22 22:36:32.0 |
| 4 | done | 123 abc | 2018-08-22 22:36:32.0 | 2018-08-12 22:36:32.0 |
| 1 | click | abc 123 | 2018-07-01 22:36:32.0 | 2018-07-01 22:36:32.0 |
+-----+---------+-----------+------------------------+------------------------+

表 B

+-----+---------+------------------------+
| id | event | test_time |
+-----+---------+------------------------+
| 1 | signup | 2018-07-01 20:36:32.0 |
| 2 | signup | 2018-07-02 23:36:32.0 |
| 3 | signup | 2018-08-02 20:36:32.0 |
| 4 | signup | 2018-09-02 20:36:32.0 |
+-----+---------+------------------------+

table A 我想从之前发生的记录中找到 id, c_name, c_date table B 中的 test_time 基于 test_time 的每个 id

预期结果

+-----+-----------+------------------------+
| id | c_name | c_date |
+-----+-----------+------------------------+
| 1 | abc | 2018-07-02 22:36:32.0 |
| 2 | abc 123 | 2018-07-01 22:36:32.0 |
| 3 | abc 345 | 2018-07-22 23:56:32.0 |
| 4 | 123 abc | 2018-08-22 22:36:32.0 |
+-----+-----------+------------------------+

我试过如下但没有得到正确的结果`

select a.c_name, a.c_date, b.id from table A a left outer join table B b where a.id = b.id and a.test_time < b.test_time

怎样才能得到预期的结果

最佳答案

使用 LEFT JOIN,尝试以下操作:

SELECT ta.id, 
ta.c_name,
ta.c_date
FROM Table_A AS ta
LEFT JOIN Table_B AS tb
ON tb.id = ta.id
WHERE tb.test_time > ta.test_time

关于mysql - 根据 Hive 中另一个表中的时间戳在表中查找记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52412966/

25 4 0
文章推荐: java - 如何在 java8 中将 List 转换为 List>