【SAS ADVANCE】Performing Advanced Queries Using PROC SQL
一、Objectives
- display all rows, eliminate duplicate rows, and limit the number of rows displayed
- subset rows using other conditional operators and caculated values
- enhance the formatting of query output
- Using summary functions, such as COUNT, with and without grouping
- subset groups of data by using the HAVING clause
- subset data by using correlatedd and noncorrelated subqueries
- Validate query syntax.
二、SELECT语句的语法
1 SELECT column-1<,...,column-n> /*SELECT指定用户需要输出到output内的列*/ 2 FROM table-1|view-1<,...,table-n|view-n> /*FROM指定去查询的table 或者view*/ 3 <WHERE expression> /*WHERE子句:用表达式来subset或者restrict数据集的条件*/ 4 <GROUP BY column-1<,...,column-n>> /*GROUP BY按后面指定的列将数据集分成若干组*/ 5 <HAVING expression> /*HAVING子句:在group条件下,用表达式subset或者restrict分组后的数据*/ 6 <ORDER BY column-1<,...,column-n>>; /*ORDER BY:根据其后的变量对查询结果进行排序*/
【备注】:PROC SQL SELECT语句中的子句需要按照上述顺序排列。
三、Displaying All Columns
1. 利用SELECT *:可将所有列呈现出来
1 proc sql; 2 select * 3 from sasuser.staffchanges;
2. FEEDBACK选项(debugging tools:让用户可以清楚的看到what is being submitted to the SQL processor)
当指定SELECT *语句时,PROC SQL中的FEEDBACK选项则会在日志中输出expand list of columns(每一列的详细名称)。
例如:
1 proc sql feedback; 2 select * 3 from sasuser.staffchanges;
则日志中会输出:
202 proc sql feedback; 203 select * 204 from sasuser.staffchages; NOTE: Statement tranforms to: select STAFFCHANGES.EmpID, STAFFCHANGES.LastName, STAFFCHANGES.FirstName, STAFFCHANGES.City, STAFFCHANGES.State, STAFFCHANGES.PhoneNumber from SASUSER.STAFFCHANGES
【备注】:日志不仅仅将星号(*)展开成详细列表,还会resolves macro variables and places parentheses around expressions to show their order of evaluation.
四、控制输出行的方法
- 通过OUTOBS=选项来限制 the Number of Rows Displayed
General form:PROC SQL statment with OUTOBS= option: PROC SQL OUTOBS=n; /*其中n指定了输出的行数,这里的OUTOBS=选项类似于DATA SET选项中的OBS=*/
【备注】:这里的OUTOBS=选项仅仅是限制了display出来的行数,但是没有限制读入的行数。如果用户需要限制读入的行数,则可用INOBS=选项来控制。
例子:
1 proc sql outobs=10; 2 select flightnumber,date 3 from sasuser.flightschedule;
日志提示:WARING: Statement terminated early due to OUTOBS=10 option.
【SAS ADVANCE】Performing Advanced Queries Using PROC SQL,古老的榕树,5-wow.com
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。