SAS - 如何查找2或3个数字之间的最大值

时间:2015-07-20 22:34:20

标签: sas max numeric

我有一张这样的表:

EMITTER   RECEIVER    DUR      T_DUR       PCT_DUR     PCUM     RANK_123 
123       12          6038      24843       0.243      0.243     1  
(...) 
123       578         256       24843       0.010      0.832    22.5
123       456         256       24843       0.010      0.842    22.5
(...)

对于排名为整数的每种情况,我都有一个PROC SQL。但是当它像22,5时我必须选择一个决胜局,所以我想选择更大的一个。 (此时,只有这些变量,你会选择哪个决胜局?)

我试过了:

PROC SQL;
CREATE TABLE work.TESTE_UP_TOP22_123 AS
SELECT EMITTER, PCUM AS TOP22 
FROM WORK.BASE
WHERE RANK_123=22.5 AND MAX(RECEIVER); 
QUIT;

在“teste_up_top22_123”中,我希望得到发射器的值和累积百分比(PCUM)的值,其中排名为22,5,RECEIVER的值更大。 所以,它会留下来:

EMITTER TOP22
123     0.832

我该怎么做? 在我有超过2个数字且排名像22,5的情况下,这是相同的程序吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

试试这个:

PROC SQL;
CREATE TABLE work.TESTE_UP_TOP22_123 AS
SELECT EMITTER, PCUM AS TOP22 
FROM WORK.BASE
WHERE RANK_123=22.5
Having RECEIVER=MAX(RECEIVER); 
QUIT;