原始数据是这样的a=
| id | date | datenum | baseline |
1 | 2016-10-11 | visit1 | 2017-1-1 |
1 | 2016-11-11 | visit2 | 2017-1-1 |
1 | 2016-12-11 | visit3 | 2017-1-1 |
1 | 2016-12-22 | visit4 | 2017-1-1 |
1 | 2016-12-25 | visit5 | 2017-1-1 |
1 | 2016-12-27 | visit6 | 2017-1-1 |
2 | 2016-10-26 | visit1 | 2017-1-1 |
2 | 2016-11-26 | visit2 | 2017-1-1 |
2 | 2016-12-26 | visit3 | 2017-1-1 |
2 | 2017-1-6 | visit4 | 2017-1-1 |
2 | 2017-1-9 | visit5 | 2017-1-1 |
2 | 2017-1-11 | visit6 | 2017-1-1 |
3 | 2016-11-10 | visit1 | 2017-1-1 |
3 | 2016-12-11 | visit2 | 2017-1-1 |
3 | 2017-1-10 | visit3 | 2017-1-1 |
3 | 2017-1-21 | visit4 | 2017-1-1 |
3 | 2017-1-24 | visit5 | 2017-1-1 |
3 | 2017-1-26 | visit6 | 2017-1-1 |
4 | 2016-11-25 | visit1 | 2017-1-1 |
4 | 2016-12-26 | visit2 | 2017-1-1 |
4 | 2017-1-25 | visit3 | 2017-1-1 |
4 | 2017-2-5 | visit4 | 2017-1-1 |
4 | 2017-2-8 | visit5 | 2017-1-1 |
4 | 2017-2-10 | visit6 | 2017-1-1 |
5 | 2016-12-10 | visit1 | 2017-1-1 |
5 | 2017-1-10 | visit2 | 2017-1-1 |
5 | 2017-2-9 | visit3 | 2017-1-1 |
5 | 2017-2-20 | visit4 | 2017-1-1 |
5 | 2017-2-23 | visit5 | 2017-1-1 |
5 | 2017-2-25 | visit6 | 2017-1-1 |
我的逻辑规则呢是以“id”变量分组,“date”<“baseline(2017-1-1)”的最后一个日期,标记“Y”;
出来的结果应该是这样的;
| id | date | datenum | baseline | flag |
1 | 2016-10-11 | visit1 | 2017-1-1 | |
1 | 2016-11-11 | visit2 | 2017-1-1 | |
1 | 2016-12-11 | visit3 | 2017-1-1 | |
1 | 2016-12-22 | visit4 | 2017-1-1 | |
1 | 2016-12-25 | visit5 | 2017-1-1 | |
1 | 2016-12-27 | visit6 | 2017-1-1 | Y |
2 | 2016-10-26 | visit1 | 2017-1-1 | |
2 | 2016-11-26 | visit2 | 2017-1-1 | |
2 | 2016-12-26 | visit3 | 2017-1-1 | Y |
2 | 2017-1-6 | visit4 | 2017-1-1 | |
2 | 2017-1-9 | visit5 | 2017-1-1 | |
2 | 2017-1-11 | visit6 | 2017-1-1 | |
3 | 2016-11-10 | visit1 | 2017-1-1 | |
3 | 2016-12-11 | visit2 | 2017-1-1 | Y |
3 | 2017-1-10 | visit3 | 2017-1-1 | |
3 | 2017-1-21 | visit4 | 2017-1-1 | |
3 | 2017-1-24 | visit5 | 2017-1-1 | |
3 | 2017-1-26 | visit6 | 2017-1-1 | |
4 | 2016-11-25 | visit1 | 2017-1-1 | |
4 | 2016-12-26 | visit2 | 2017-1-1 | Y |
4 | 2017-1-25 | visit3 | 2017-1-1 | |
4 | 2017-2-5 | visit4 | 2017-1-1 | |
4 | 2017-2-8 | visit5 | 2017-1-1 | |
4 | 2017-2-10 | visit6 | 2017-1-1 | |
5 | 2016-12-10 | visit1 | 2017-1-1 | Y |
5 | 2017-1-10 | visit2 | 2017-1-1 | |
5 | 2017-2-9 | visit3 | 2017-1-1 | |
5 | 2017-2-20 | visit4 | 2017-1-1 | |
5 | 2017-2-23 | visit5 | 2017-1-1 | |
5 | 2017-2-25 | visit6 | 2017-1-1 | |
分步我也能做出来,但是比较复杂,希望能找到一种比较简洁的方法,十分看好sql的子查询!
顺便问一句,sql能实现子查询的嵌套吗?就是在子查询里再套个子查询,实现3层,甚至更多层的子查询!