《SAS宏与SQL简介》PPT课件.ppt_第1页
《SAS宏与SQL简介》PPT课件.ppt_第2页
《SAS宏与SQL简介》PPT课件.ppt_第3页
《SAS宏与SQL简介》PPT课件.ppt_第4页
《SAS宏与SQL简介》PPT课件.ppt_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

SQL查询创建数据集,PROC SQL; CREATE TABLE 数据集名 AS SELECT 语句;,SELECT语句: SELECT FROM WHERE GROUP BY ORDER BY ,SQL查询创建数据集,PROC SQL; CREATE TABLE 数据集名 AS SELECT 语句;,SELECT语句,SELECT FROM WHERE GROUP BY ORDER BY ,SELECT语句,SELECT DISTINCT. AS 指定参加查询的字段或表达式 说明 SELECT表达式:列名或包括列名的表达式 * 表示全部字段 可以用函数,如AVG,COUNT,MIN,MAX,SUM 列标题:显示的列标题,可以不同于字段名 别名:列所在的表名(一般多表操作时使用) DISTINCT:只显示查询结果中不重复的数据,SELECT语句,FROM FROM AS 指定参加查询的表 表名:要查询的数据表(数据集)名,可以包括路径 本地别名:给表指定一个别名,该别名只在该命令中有效,最简单的查询,SELECT FROM 从“student00“表中查询所有的所有信息 Libname cc “e:sasdataexp1“; Proc sql; SELECT a.* FROM cc.student00 as a;quit; 从“student00”表中查询所有学生的学号、姓名和性别 Proc sql; SELECT number,name,gender FROM c.student00 Quit;,最简单的查询,从“grade00“表中查出成绩的最高值,并将结果的标题设为“scoremax“ Proc sql; SELECT MAX(score) AS scoremax FROM cc.grade00; Quit;,条件子句,WHERE AND 过滤条件:用于过滤查询的数据。 格式:别名.字段表达式=值 连接条件:用于建立两个表间的关系。 别名1.字段表达式1=别名2.字段表达式2,条件子句,rxcj=500 AND rxcj=600rxcj BETWEEN 500 AND 600 Xm=张三 OR xm=李四 OR xm=王五xm IN (张三,李四,王五 ) Xh LIKE 200%,包含界于两个数据之间的所有数据,包含列出的所有数据,条件子句,查出“student00”表中毕业学校为“北大附中“的学生学号,姓名 Proc sql; SELECT number,name FROM cc.student00 WHERE school=“北大附中“; Quit;,分组子句,GROUP BY HAVING 用于统计时指定分组统计条件 分组表达式 设置分组的字段,使用字段名或别名,不能使用表达式 HAVING:将统计结果作为查询过滤条件 和GROUP BY一起使用的统计函数 SUM(),AVG(),COUNT(*),COUNT(),MAX(),MIN(),分组子句,分类统计grade00中各门课程的平均分数 Proc sql; SELECT courseid,AVG(score) AS scoreavg FROM cc.grade00 GROUP BY courseid; Quit; 如果没有GROUP BY子句是怎样的结果?,分组子句,按照grade中的“courseid”分组,统计平均分75以上的课程编号 Proc sql; SELECT courseid,avg(score) as average FROM cc.grade00 GROUP BY courseid HAVING average=75; Quit;,排序子句,ORDER BY ASC | DESC 设置排序字段或表达式 表达式:指定排序的字段或表达式 ASC: 按表达式升序排列 DESC:按表达式降序排列 例:查询grade00中信息并按成绩的降序排列 Proc sql; SELECT * FROM cc.grade00 order by score desc; Quit;,多表查询,查询的数据来自多个表 必须指定表和表之间的联接条件 在WHERE子句中建立联接条件 在表子句中用JOIN子句建立联接条件,多表查询,T1,T2,SELECT * FROM T1,T2,无联接条件的多表查询,多表查询,用WHERE子句设置联接条件 在FROM子句中列出要查询的多个表 在WHERE子句中加入联接条件 .=. 结果集中只包含匹配的数据,即使联接条件为逻辑“真”的数据,多表查询,T1,T2,SELECT * FROM T1,T2 WHERE T1.C1=T2.C1,有联接条件的多表查询,多表查询,查询选修了课程的学生姓名、所选课程名及成绩,并将查询结果写入临时数据集student Proc sql; Create table student as SELECT name,coursename,score FROM cc.grade00 as b,cc.student00 as a,cc.course as c WHERE b.number=a.number AND b.courseid=c.courseid; Quit;,多表查询,从student00中统计出平均成绩大于85分的学生 proc sql; create table stud00 as SELECT a.number,,AVG(b.score) as avgscore FROM cc.student00 as a,cc.grade00 as b WHERE a.number=b.number group BY a.number HAVING AVG(score)=85; quit; proc print;run;,SAS宏功能,将一个变量,一段程序或者一个文本命名,供以后调用,以减少在完成一些共同任务时必须输入的文本量。 当用户在某个SAS程序中使用宏功能时,这个宏功能产生所需要的SAS语句和命名,SAS系统的其余部份接受这些语句和命令.,SAS宏变量,可以在SAS程序的任何地方定义和使用宏变量 数据步变量是和数据集相联系的,而宏变量是独立于数据集的 数据集变量的值取决于正在处理的观测,而一个宏变量的值总是保持不变,直到被明确改变。 SAS系统包含两种类型的宏变量: 自动宏变量,由SAS系统提供; 用户定义的宏变量,由用户在程序中定义。,自动宏变量,%put _automatic_; 查看所有自动宏变量 SYSDATE SAS进程开始的日期; SYSDATE9 以Date9.格式显示SAS进程开始的日期; SYSTIME SAS进程开始的时间; SYSSCP 使用的操作系统; SYSDAY SAS进程开始是为星期几; SYSVER SAS的版本; SYSLAST 最新创建的SAS数据集名;,宏变量的定义和引用,%LET 宏变量名=值 ; 宏变量的命名遵从一般的SAS命名规则 宏变量的值不需要加引号 宏变量的值可以是固定的字符串、其它宏变量的引用、宏函数和宏调用 宏变量的引用 &宏变量名,宏变量的引用举例,%let x=cc.grade00; Data temp; Set ,宏,宏的定义 %macro 宏名称(参数); 宏文本 %mend 宏的调用 %宏名称,宏,例 %macro printdata(x); proc print data=,宏,宏的分支结构 %if 条件 %then %do; 语句组; %end; %else %do; 语句组; %end;,宏,宏的分支结构 %if 条件 %then %do; 语句组; %end; %else %do; 语句组; %end;,宏,宏的循环结构 %do 变量=初值 %to 终值 by

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论