根据将要更改的条件查找返回的客户

zf9nrax1  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(288)

我正在尝试编写一个查询,该查询基于对所有code=a的客户的原始访问来提取数据。然后我想看看是否有原始代码为a的客户稍后返回。它们可能不是后续访问的代码。

Select name, visit_date, code
From Visit
Where code = A

我现在如何只看code=a的人,看看他们是否回来了?

hi3rlvi2

hi3rlvi21#

你需要一个 ROW_NUMBER() 窗口函数获取访问顺序。然后进行第一次访问,然后回到 visit_date 在第一个之后发生 visit_date .

;with visitOrder
as (
    Select name, visit_date, code, row_number() over (partition by name, code order by visit_date) rn
    From Visit 
    Where code='A'
    )
select *
from visitOrder vo
join visit v
    on vo.name = v.name
    and vo.visit_date < v.visit_date
    and vo.rn = 1

相关问题