从特定点开始每个 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;
我想知道如何从 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;