代码之家  ›  专栏  ›  技术社区  ›  user8834780

筛选特定日期

  •  0
  • user8834780  · 技术社区  · 6 年前

    我有一个表格显示了用户注册漏斗:

    user_id   event          date
    1         Start   1/1/2018
    1         End     1/1/2018
    2         Start   1/2/2018
    2         End     1/4/2018
    etc.
    

    我想添加一个“过滤器”,以便查看基于 event=Start (用户注册开始日期);A. where 如果我说 where date between '2/1/2018' and '2/28/2018' -2018年2月1日之前开始注册的用户将显示在表中。

    我尝试了以下方法:

    select user_id, event, date
    from table
    where case when event='Start' then date end between '2/1/2018' and '2/28/2018'
    

    但这就完成了删除 event=End

    有什么建议吗?

    1 回复  |  直到 6 年前
        1
  •  1
  •   Daniel Marcus    6 年前
    select user_id, event, max(case when event='Start' then date else null end) start_date,
    max(case when event='End' then date else null end) end_date 
    from table
    group by user_id, event