我正在尝试形成一个查询,用于返回,重新激活和WAU的定义如下:
我有过去60天的表格,其中包含cust_id,登录日期,但不能运行滞后功能(Teradata ODBC连接)。我不断收到此错误:
[3706]语法错误:数据类型“ logindate”与“已定义”不匹配 输入名称。我的格式是:选择....滞后(logindate,1)超过(分区 由cust_id按1 asc排序,作为lag_ind从(....
请为上述3种情况提供帮助。
答案 0 :(得分:0)
您可以汇总以获得预期的答案:
select cust_id,
case
when max(logindate) > current_date - 7 -- active last week
then 'Returning WAU'
when max(logindate) > current_date - 30 -- not active last week, but active within last 30 days
then 'WAU'
else 'Reactivated WAU' –- not seen in 30+ days
end
from tab
group by 1
关于LAG的问题,在您必须重写之前,此问题已在16.10中引入:
lag(logindate, 1)
over (partition by cust_id
order by col asc) as lag_ind
max(logindate)
over (partition by cust_id
order by col asc
rows between 1 preceding and 1 preceding) as lag_ind
提示:切勿在OLAP函数中使用ORDER BY 1,这是文字值一个,而不是第一列。