簡體   English   中英

在Impala中按組減去最大,最小日期

[英]Subtract Max, Min Date by Group in Impala

我有一個查詢,可以在黑斑羚中按用戶查找最大和最小日期:

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

然后,我想按用戶減去最小和最大日期。

在Impala中,我嘗試使用date_sub函數,但是它不起作用。

select date_sub(last_tran, first_tran) as date_len
, user
from
(select max(id_date) as last_tran
       ,min(id_date) as first_tran
       ,user
from table_1 a 
join table_2 d
on a.id= d.id
group by 3) time
group by 1,2

似乎date_sub函數的第二個參數必須是代表天的整數。

我該如何解決?

為了使這項工作有效,應使用datediff函數,如下所示:

select datediff(last_tran, first_tran) as date_len
, user
from
(select max(id_date) as last_tran
       ,min(id_date) as first_tran
       ,user
from table_1 a 
join table_2 d
on a.id= d.id
group by 3) time
group by 1,2

該函數返回開始日期和結束日期之間的天數。 文檔看來,天的返回值似乎無法更改。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM