1.SQL语言概述
SQl语言在SAS中通过PROC SQL来实现。PROC SQL可实现以下功能:
- 制作报表与表;
- 生成一些统计性数据;
- 合并表;
- 从其它表中抽取部分行、列;
- 更新表的行、列;
- 从其它数据管理系统(DBMS)中更新或抽取数据。
2.使用SQL检索数据
2.1 SQL的基本结构
PROC SQL;
SELECT 表1.列1 , 表1.列2 ,```
FROM 表1
<WHERE>
<GROUP BY>
<ORDER BY>;
QUIT;
2.2 使用SQL对列进行操作
从句SELECT选择所需要的列,语法如下:
SELECT 表名称.列1 , 表名称.列2 ,···
在不混淆的情况下,表名称可以省略。SELECT从句中,表名称前不加库名,库名由FROM指定。
使用AS对列重命名,也可以重新定义属性,语法如下:
SELECT 表名称.列1 AS 新名称 FORMAT= LABEL= ,表名称.列2 ···
还可以生成新的列,如下生成新列tax:
PROC SQL;
TITLE "Generating a new column";
select cars.Make,cars.Model,cars.MSRP,cars.msrp*0.06 as tax
from sashelp.cars;
quit;
注意SELECT从句中列的先后顺序决定了输出报表中他们的输出顺序
2.3 使用SQL对行进行操作
1.DISTINCT关键字
不输出重复的行,紧跟在SELECT之后,一个SELECT从句只能有一个。
SELECT DISTINCT 表名称.列1 , 表名称.列2 ,···
2.WHERE从句
proc sql;
select make ,model,msrp,msrp*0.06 as Tax
from sashelp.cars
where msrp<=40000;
quit;
如果针对新生成的列,则需要使用calulated
proc sql;
select make ,model,msrp,msrp*0.06 as Tax
from sashelp.cars
where calculated t ax<=2400;
quit;
3.ORDER从句
按照某些列进行排序。语法:
ORDER BY 列1<DESC>,列2<DESC>
例如以下例子按照MSRP升序,MAKE降序,Model升序
PROC SQL;
Select make,model,msrp,msrp*0.06 as tax
from sashelp.cars
where calculated tax<2400
order by msrp,make desc,model;
quit;
4.Group BY从句
用来查看分组信息。一般和汇总函数(summary function)一起使用。
我们重点关注count函数。
语法:
count (列名)