在impala中按组减去最大、最小日期

nwsw7zdq  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(628)

我有一个查询,在这里我可以按用户在impala中查找最大和最小日期:

  1. select max(id_date) as last_tran
  2. ,min(id_date) as first_tran
  3. ,user
  4. from table_1 a
  5. join table_2 d
  6. on a.id = d.id
  7. group by 3

然后我想减去用户的最小和最大日期。
在 Impala 我试着用 date_sub 但它不起作用。

  1. select date_sub(last_tran, first_tran) as date_len
  2. , user
  3. from
  4. (select max(id_date) as last_tran
  5. ,min(id_date) as first_tran
  6. ,user
  7. from table_1 a
  8. join table_2 d
  9. on a.id= d.id
  10. group by 3) time
  11. group by 1,2

看来 date_sub 函数的第二个参数必须是表示天数的整数。
我怎么才能避开这个?

zrfyljdw

zrfyljdw1#

使这项工作 datediff 函数的用法如下:

  1. select datediff(last_tran, first_tran) as date_len
  2. , user
  3. from
  4. (select max(id_date) as last_tran
  5. ,min(id_date) as first_tran
  6. ,user
  7. from table_1 a
  8. join table_2 d
  9. on a.id= d.id
  10. group by 3) time
  11. group by 1,2

函数返回开始日期和结束日期之间的天数。从文档来看,天数的返回值似乎无法更改。

相关问题