SAS中的Proc SQL以及滞后和超前

SAS中的Proc SQL以及滞后和超前,sas,proc-sql,Sas,Proc Sql,我有点纠结于一个问题,我不能完全清醒过来 假设我们有几个专栏 IP地址,时间戳,SSN 如果同一IP出现在多个记录中,并且时间在同一个一小时窗口内(作为时间窗口的示例),并且存在多个SSN,我将如何查找这些事件 例如,这可以用于接收任何应用程序,其中我们从一个给定数据变化的位置获得大量流量 滞后或超前可能是好的吗 我使用的是SAS,但实际上只有Proc SQL。落后或领先可能是一条出路吗 谢谢你的帮助 在“一小时窗口”描述中存在一些不确定性。这取决于你的出发点是什么时候——从什么时候开始一个小时

我有点纠结于一个问题,我不能完全清醒过来

假设我们有几个专栏

IP地址,时间戳,SSN

如果同一IP出现在多个记录中,并且时间在同一个一小时窗口内(作为时间窗口的示例),并且存在多个SSN,我将如何查找这些事件

例如,这可以用于接收任何应用程序,其中我们从一个给定数据变化的位置获得大量流量

滞后或超前可能是好的吗

我使用的是SAS,但实际上只有Proc SQL。落后或领先可能是一条出路吗


谢谢你的帮助

在“一小时窗口”描述中存在一些不确定性。这取决于你的出发点是什么时候——从什么时候开始一个小时

否则,您可能会以双循环结束:

  • 每一个IP
  • 对于每个时间戳
检查相同IP的其他时间戳是否存在于1小时和不同SSN之间

一个更简单的解决方案可能是使用滞后函数

  • 按IP和时间戳进行第一次排序
  • 第二,使用lag计算每两行之间的时差的新列。小于1小时时标记它。在下一个查询分组中使用此标志来标识不同的SSN

后一种解决方案的问题是,它将标记总共超过1小时窗口的记录。

在“1小时窗口”描述中存在一些不确定性。这取决于你的出发点是什么时候——从什么时候开始一个小时

否则,您可能会以双循环结束:

  • 每一个IP
  • 对于每个时间戳
检查相同IP的其他时间戳是否存在于1小时和不同SSN之间

一个更简单的解决方案可能是使用滞后函数

  • 按IP和时间戳进行第一次排序
  • 第二,使用lag计算每两行之间的时差的新列。小于1小时时标记它。在下一个查询分组中使用此标志来标识不同的SSN

后一种解决方案的问题是,它将标记总共超过1小时窗口的记录。

您能否创建示例数据集供我们查看?一个数据步骤或过程可能是更简单的方法。您的问题很有趣,但您需要提供示例数据并发布您尝试过的内容,以便人们能够提供帮助,从而使其符合so规则。请检查关于帖子的规则。至少帖子有/想要(输入数据和您希望结果是什么样子),并在代码中尽可能接近您当前所能发布您将如何进行。如果只是查找具有相同IP但没有时间/SSN约束的事件,那没关系。您可以创建示例数据集供我们查看吗?一个数据步骤或过程可能是更简单的方法。您的问题很有趣,但您需要提供示例数据并发布您尝试过的内容,以便人们能够提供帮助,从而使其符合so规则。请检查关于帖子的规则。至少帖子有/想要(输入数据和您希望结果是什么样子),并在代码中尽可能接近您当前所能发布您将如何进行。如果只是查找具有相同IP但没有时间/SSN约束的事件,那就好了。