【SAS ADVANCE】Performing Advanced Queries Using PROC SQL

來源:互聯網
上載者:User

標籤:style   blog   color   os   io   strong   資料   for   

一、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,date3          from sasuser.flightschedule; 

     日誌提示:WARING: Statement terminated early due to OUTOBS=10 option.

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.