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 运算符