查看过去30个月以上且过去30天内的脚本

时间:2019-10-06 14:30:58

标签: sql impala hue

我正在尝试运行一个查询,该查询使我可以查看在过去30天内交付中运行的脚本早于3个月的地方,因此我们知道需要对其进行更新。 我已经能够构建查询以向我显示所有脚本及其上次重新生成日期(带有特定日期),但是无法解决;

  1. 如何仅查看最近30天的数据。
  2. 如何仅查看date_regen列距今天的日期超过3个月的脚本-来自我正在查看的最近30天的数据。

示例表

ddply(df
       , as.quoted(colnames(df))
       , function(x) {if size>=3 return(size) else return(total_bill+tip)
     )

以下示例无法满足我的需求。我的想法是,我将获得当前日期(使用now()),然后知道这一点,请查看过去30天中的所有数据。 之后,我将在哪里,-3月(因此date_regen从当前日期开始3个月以上)。 但是我无法正常工作。我还考虑过尝试-几天,但也没有成功。

visit_datetime      | client | script     |    date_regen          |
2019/10/04 03:32:51 | 1      | script1    |   2019-09-17 13:12:01  |
2019/09/27 03:32:52 | 2      | script2    |   2019-07-18 09:44:02  |
2019/10/06 03:32:50 | 3      | script3    |   2019-03-18 14:08:02  |
2019/10/02 06:28:24 | 4      | script6    |   2019-09-11 10:02:01  |
2019/03/01 06:28:24 | 5      | script7    |   2019-02-11 10:02:01  |

我当前用于获取表格的代码

-- WHERE MONTH = MONTH(now()) AND YEAR = YEAR(now())
-- WHERE date_regen <= DATEADD(MONTH,-3,GETDATE())
-- WHERE DATEDIFF(MONTH, date_regen, GetDate()) >= 3

结束目标 我应该只看到客户端3,因为客户端1 + 2 + 4的标签中的date_regen在过去3个月内,而客户端5的visit_datetime超出了30个限制。

SELECT split_part(js,'#',1) AS script,
date_regen,
client
FROM table
WHERE YEAR=2019 AND MONTH=10 AND DAY = 01 (This where is irrelevant as I would need to use now() but I don't know what replaces "YEAR/MONTH/DAY ="
GROUP BY script,date_regen,client
ORDER BY client DESC;

1 个答案:

答案 0 :(得分:0)

我认为您想要简单的过滤:

select t.*
from t
where visit_datetime >= current_timestamp - interval 30 day and
      date_regen < add_months(current_timestamp, -3)
相关问题