上節我們講了PROC SQL的基本結構,以及一些sql命令的使用,這節我們主要講一下case...when...、order by 、group by 、update、delete語句以及如何用proc sql生成宏變量。
示例1:有條件地賦值——case...when
Proc步中的 case...when... 相當于data步中的 if...then... 根據某種條件輸出最終結果。
結果如下:
示例2:對數據進行排序——order by
(1)默認按升序排列
結果如下:
(2)按降序排列
結果如下:
示例3:檢索滿足條件的行——where
**當我們想要選擇表中的某些觀測時,可以使用where**來選擇符合特殊條件的觀測。
結果如下:
示例4:對數據進行分組——group by
GROUP BY子句使SELECT語句的結果按子句中列出的一個或多個變量的每次不同出現進行匯總或匯總。只有在SELECT或HAVING子句中包含一個或多個匯總函數(SUM、AVG、MIN、MAX)時,GROUP BY子句才會添加到SELECT語句中。
(1)用group by進行分組
結果如下:
(2)Having指定條件
說到指定條件,我們最新想到的往往是where子句,但是where子句只能指定行的條件,而不能指定組的條件,因此便有了Having子句,它用來指定組的條件,我們來看個示例:
我們想要了解平均體重大于100的是男性還是女性
結果如下:
示例5:子查詢
查詢語句中包含查詢語句,執行時先執行子查詢,后執行外部查詢,根據包含子查詢的子句,子查詢可以返回一個值或多個值。
結果如下:
示例6:更新SAS表——Update
我們可以使用**SQL Update**語句更新SAS表。下面我們首先創建一個名為class的新表,然后使用SQL Update語句去更新它。
結果如下:
示例7:刪除操作——Delete
**SQL**中的刪除操作涉及使用**SQL DELETE**語句從表中刪除某些值.我們可以繼續使用示例中的數據,并從表中刪除age大于等于13的觀測。
結果如下:
示例8:創建宏變量——INTO
給宏變量賦值,**Data**步和**Proc**步都能實現,不過從操作靈活性上講,**Proc**步要更勝一籌。**Proc**步生成宏變量就需要用到**INTO**子句,下面來具體介紹一下**INTO**子句如何使用。
(1)指定一個宏變量
結果如下:
(2)指定多個宏變量
結果如下:
(3)指定一個宏變量來保存一列的所有值
結果如下:
-
SQL
+關注
關注
1文章
774瀏覽量
44251 -
SAS
+關注
關注
2文章
523瀏覽量
32941 -
avg
+關注
關注
0文章
11瀏覽量
4134
發布評論請先 登錄
相關推薦
評論