join表

3npbholx  于 2021-07-13  发布在  Hive
关注(0)|答案(0)|浏览(214)

我想将一个表与其自身连接起来,以找到每一行具有相等条件的父级。另外,我需要保持只有一个家长采取一个谁的领域“计数”是最低限度的。以下是示例数据:

product  date1           date2          version   counts
A.16    15/04/2021      17/04/2021      1         20
A.18    18/04/2021      16/04/2021      1         15
A.15    17/04/2021      18/03/2021      1         18
A.20    19/04/2021      20/03/2021      1         33
A.35    20/04/2021      30/03/2021      1          8

请求如下:

select  b.product
      , b.date1
      , b.date2
      , b.version
      , c.product as parent
from pr_convert b
left join pr_convert c
on (c.date1< b.date1 and c.date2> b.date2)

这不起作用,它给了我一个错误: Both left and right aliases encountered in JOIN 'date1' 然后我尝试将不等式条件放在where子句中:

select  b.product
      , b.date1
      , b.date2
      , b.version
      , c.product as parent
from pr_convert b
left join pr_convert c
on b.version=c.version
where b.date1< c.date1 and b.date2> c.date2

由于“version”字段的值对于所有记录都是相同的,而且我的表非常大,因此它会消耗大量资源并占用大量时间。
任何帮助都将不胜感激。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题