雅典娜/ SQL查询以获得所需的结果

西瓦

sample_input_table

user  name  action      date
 1    aaa    view      2020-09-03
 2    bbb    view      2020-09-02
 3    ccc    view      2020-08-28
 4    ddd    view      2020-08-25
 1    aaa    purchase  2020-09-09

我有一个表,其中有很多行,该表看起来像上面。

  1. 我想打印有purchase动作的行,
  2. 同时,执行该操作的用户purchase必须有view动作
  3. 同时,该view操作将处于purchase_date(2020-09-09)和purchase_date-7days(2020-09-02的日期范围内

我想在一个sql查询中实现这3点

sample_output

user  name  action      date
1    aaa    purchase  2020-09-09

如果我们从样本输入中看到样本输出

  1. 我们的最终结果只有purchase_events
  2. Purchase_userview采取行动
  3. view2020-09-092020-09-02(购买日期,购买日期-7天)的时间范围内

有人可以为此建议一些解决方案吗?

专线小巴

您可以使用exists

select t.*
from mytable t
where t.action = 'purchase' and exists (
    select 1
    from mytable t1
    where 
        t1.user = t.user 
        and t1.action = 'view'
        and t1.date >= t.date - interval '7' day
        and t1.date < t.date
    )

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

查找雅典娜查询结果的来源

雅典娜SQL查询问题

过去一周如何从雅典娜获得结果?

雅典娜最佳做法存储查询结果

雅典娜(Hive / Presto)查询分区表IN语句

雅典娜:以比例系数查询耗尽的资源

雅典娜:以这种比例系数查询耗尽的资源

哪个查询雅典娜更快:pyathena或boto3?

雅典娜查询错误:多余的输入“选择”期望

从雅典娜查询s3中的文件

如何在雅典娜中查询NaN double值

从Lambda函数查询雅典娜-排队状态?

雅典娜标量子查询问题

雅典娜/ ANSI SQL-选择列作为结构

两次使用完全相同的查询时,雅典娜查询结果不同

雅典娜查询失败并显示:“权限不足,无法执行查询”

如何更改S3中存储的雅典娜结果的名称?

如何在运行雅典娜查询时避免重复数据扫描

Boto3雅典娜查询而无需将数据保存到S3

如何在雅典娜(Presto)中查询和遍历结构数组?

雅典娜在S3上查询数据的替代方法

查询Athena分区雅典娜表时出现问题

由于字符破折号无法查询雅典娜表

雅典娜查询存储为字符串的JSON字段

雅典娜查询以匹配列数据中固定长度的字母数字字符

雅典娜DateDiff

如果新分区不存在,如何修改 CTAS 查询以将查询结果附加到表中?- 雅典娜

如何使用python中的lambda函数在通过S3连接的AWS雅典娜中进行查询

HIVE_CANNOT_OPEN_SPLIT:从雅典娜查询实木复合地板文件时架构不匹配