oracle 如何获取过去6个月不活跃的用户

gjmwrych  于 2023-06-29  发布在  Oracle
关注(0)|答案(2)|浏览(153)

我有一个字段transaction_date是varchar2,我想在该字段上进行搜索,并获得过去6个月不活跃的用户的user_id
我尝试了下面的查询,但它没有给出正确的答案,我的查询是:

select distinct(user_id) 
from DAILYBOOKINGREPORT2 
where TRANSACTION_DATE  NOT BETWEEN to_date('31-MAY-2017') AND to_date('31-DEC-2016');
olmpazwi

olmpazwi1#

使用GROUP BYHAVING查找最大交易日期超过6个月的用户:

SELECT   user_id
FROM     DAILYBOOKINGREPORT2
GROUP BY user_id
HAVING   MAX( TRANSACTION_DATE ) < ADD_MONTHS( SYSDATE, -6 );
57hvy0tb

57hvy0tb2#

您希望使用DATEADD函数

SELECT 
       DISTINCT(user_id) 
 FROM `DAILYBOOKINGREPORT2` 
WHERE `TRANSACTION_DATE` <= DATEADD(mm, -6, GETDATE())

更多信息:https://www.w3schools.com/sql/func_dateadd.asp

相关问题