用于根据时间间隔(10 分钟)提取数据的 Teradata 查询
Teradata Query for extracting data based on time interval (10 minutes
谁能帮我解决 Teradata/SQL 中的查询问题,我可以用它来提取在 10 分钟的时间戳中进行了 3 次以上交易的所有用户。以下是相关 table 的摘录。
亲切的问候,
您可以使用lag()
/lead()
和时间比较。要获取之前有 2 个此类交易的行:
select t.*
from t
qualify transaction_timestamp < lag(transaction_timestamp, -2) over (partition by userid order by transaction_timestamp) + interval '10' minute
如果您只想要用户:
select distinct userid
from (select t.*
from t
qualify transaction_timestamp < lag(transaction_timestamp, 2) over (partition by userid order by transaction_timestamp) + interval '10' minute
) t
谁能帮我解决 Teradata/SQL 中的查询问题,我可以用它来提取在 10 分钟的时间戳中进行了 3 次以上交易的所有用户。以下是相关 table 的摘录。
亲切的问候,
您可以使用lag()
/lead()
和时间比较。要获取之前有 2 个此类交易的行:
select t.*
from t
qualify transaction_timestamp < lag(transaction_timestamp, -2) over (partition by userid order by transaction_timestamp) + interval '10' minute
如果您只想要用户:
select distinct userid
from (select t.*
from t
qualify transaction_timestamp < lag(transaction_timestamp, 2) over (partition by userid order by transaction_timestamp) + interval '10' minute
) t