从特定点开始每个 SQL 记录

Starting each SQL record from a specific point

我想知道如何从 SQL 中的特定点开始每条记录。我创建了一个数据集来尝试表示我想要的内容。

这是起始数据集。

但是,我想要一个新的视图,有一个明确的起点。

所以每条会员记录都是从ID 33开始,按会员和日期排序。基本上想要 ID 33 之后的每条记录及其对应的日期。

如果您的 ID 没有问题,您可以使用:

select t.*
from t
where id >= 33
order by member, date;

如果id不按顺序,一种方法是相关子查询:

select t.*
from t
where date >= (select min(t2.date) from t t2 where t2.member = t.member and t2.id = 33);

最后,windows 函数方法是:

select t.*
from (select t.*,
             min(case when id = 33 then date end) over (partition by member) as date_33
      from t
     ) t
where date >= date_33;