hive 配置单元中的不等式联接错误

fdbelqdn  于 2022-11-05  发布在  Hive
关注(0)|答案(1)|浏览(115)

我正在配置单元中执行自联接,并对联接条件中包含的窗口进行聚合(百分比),但遇到以下错误-
第一个
代码如下所示-

SELECT
      a.id
    , a.date
    , a.groups
    , a.items
    , PERCENTILE_APPROX(b.quantity, 0.75) AS rolling_percent_75
  FROM (
    SELECT
      DISTINCT
      id
    , date
    , groups
    , items
    FROM
      table1) AS a
  LEFT OUTER JOIN
    table1 AS b
  ON
        a.id         = b.id
    AND a.groups     = b.groups
    AND a.items      = b.items
    AND b.date      >= DATE_FORMAT(DATE_ADD(DATE_PARSE(a.date, 'yyyyMMdd'), -10, 'yyyyMMdd'))   
    AND b.date      <= a.date   
  GROUP BY
    1, 2, 3, 4
  ORDER BY
    1, 2, 3, 4

如何解决这些错误?

kpbwa7wx

kpbwa7wx1#

您可以使用from_unixtime(unix_timestamp(str,format))将字符串转换为日期(date_purse函数),并使用DATE_ADD转换为负日期值。
您可以在查询中使用以下部分并替换现有不等式

AND b.date      >= DATE_ADD(from_unixtime(unix_timestamp(a.date, 'yyyyMMdd')), -10)   
    AND b.date      <= a.date   
``

相关问题