Sas:如何在 proc sql 中使用 order by


您可以使用 SAS 中PROC SQL中的ORDER BY语句根据一个或多个变量的值对查询结果进行排序。

以下是在实践中使用ORDER BY语句的三种常见方法:

方法 1:按递增变量排序

 /*display results in ascending order by value in team column*/
proc sql ;
   select *
   from my_data
   order by team ;
quit ;

方法 2:按递减变量排序

 /*display results in descending order by value in team column*/
proc sql ;
   select *
   from my_data
   order by team desc ;
quit ;

方法3:按多个变量排序

 /*display results in ascending order by team, then descending order by points*/
proc sql ;
   select *
   from my_data
   order by team, points desc ;
quit ;

以下示例展示了如何在 SAS 中的以下数据集(包含有关各种篮球运动员的信息)的实践中使用每种方法:

 /*create dataset*/
data my_data;
    input team $position $points assists;
    datalines ;
A Guard 14 4
B Guard 22 6
B Guard 24 9
A Forward 13 8
C Forward 13 9
A Guard 10 5
B Guard 24 4
C Guard 22 6
D Forward 34 2
D Forward 15 5
B Forward 23 5
B Guard 10 4
;
run ;

/*view dataset*/
proc print data =my_data; 

示例 1:按递增变量排序

以下代码显示如何根据团队列值按升序返回数据集中的每一行:

 /*display results in ascending order by value in team column*/
proc sql ;
   select *
   from my_data
   order by team;
quit ; 

请注意,结果按Team列中的值升序显示。

示例 2:按递减变量排序

以下代码显示如何根据团队列值按降序返回数据集中的每一行:

 /*display results in descending order by value in team column*/
proc sql ;
   select *
   from my_data
   order by team desc ;
quit ; 

请注意,结果根据Team列中的值按降序显示。

示例 3:按多个变量排序

以下代码显示如何首先按团队升序返回数据集中的每一行,然后按点数降序返回:

 /*display results in ascending order by team, then descending order by points*/
proc sql ;
   select *
   from my_data
   order by team, points desc ;
quit ; 

请注意,结果首先按球队升序显示,然后按分数降序显示。

其他资源

以下教程解释了如何在 SAS 中执行其他常见任务:

SAS:如何在 PROC SQL 中使用 UNION
SAS:如何在 PROC SQL 中使用 EXCEPT
SAS:如何在 PROC SQL 中使用 IN 运算符
SAS:如何在 PROC SQL 中使用 WHERE 运算符

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注