【发布时间】:2014-09-25 09:47:06
【问题描述】:
数据集如下所示:
Code Type Rating
0001 NULL 1
0002 NULL 1
0003 NULL 1
0003 PA 1 3
0004 NULL 1
0004 PB 1 2
0005 AC 1 3
0005 NULL 6
0006 AC 1 2
我希望输出数据集看起来像
Code Type Rating
0001 NULL 1
0002 NULL 1
0003 PA 1 4
0004 PB 1 3
0005 AC 1 9
0006 AC 1 2
对于每个Code,Type 最多有两个值。我想通过求和Rating 来选择唯一的Code。但问题是,对于Type,如果它只有一个值,则将其值传递给输出数据集。如果 is 有两个值(一个必须是 NULL),则将不等于 NULL 的值传递给输出数据集。
观察总数N>100,000,000。那么有什么棘手的方法可以实现这一目标吗?
【问题讨论】:
-
type有多少个不同的值?数据是像上面那样排序的,还是没有排序的(至少,按code)?我们将此与什么“不棘手”的方式进行比较(即,您现在拥有什么以及需要多长时间)? -
几百个
type。数据按code排序,然后按type排序。我为每个唯一的code连接type。然后寻找非空子字符串。 -
如果它已经排序(即,您不为此进行排序),那么 Keith 提供的数据步解决方案可能是最快的。如果不是,那么如果它只有几百个类型,那么数组解决方案可能是最快的。
-
已在上一步中排序。但是最好不要先排序,因为执行时间会增加很多。我应该尝试一个不排序的数组解决方案和一个带有排序数据的日期步骤,看看哪个更快?
-
你应该尝试各种解决方案,看看哪个更快。
标签: sas