- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
三章节 查询语言SQL
第三讲 查询语言SQL;内容提要;涉及章节;本讲目的;3.1 SQL过程与SQL语言简介;SQL的英文全称是Structured Query Language, 翻译成汉语为“结构化查询语言” ,是在关系型数据库中广泛使用的一种标准化查询语言,通常使用它对数据表和基于表的数据视图进行查询和加工。(SQL术语中的表即为SAS术语中的数据文件(数据集、数据视图、索引);SQL术语与SAS术语对应表;二、SQL过程 ;SQL过程的简单形式;PROC SQL特点 ;;;;SQL过程中最主要、最常用的就是Select语句,使用SELECT语句可以识别、检索和操作表中的数据:
展示查询结果;
让数据以一定格式显示;
将报告在output窗口输出;
另外为了将查询结果输出到数据集,需要用creat语句,在creat语句中,select语句就称为它的从句。
SQL语言还有许多其他语句,这里不再介绍,可参考 帮助目录:
Base SAS?SAS过程?过程?SQL过程;Select语句的格式;;Creat 语句格式;3.2 从单个表中查询和加工数据;3.2.1利用select 语句处理和加工数据;Select 子句应用;选择特定列 ;剔除查询结果中的重复观测 ;计算新列值 ;为列分配别名 ;CALCULATED 语句 ;二、WHERE从句(20.4节);例3.8 用WHERE语句选择1991年以前上市的股票。
proc sql;
select lstknm, lstdt from data.lstkinfo
where lstdt31dec1991d;
quit; ;例3.9 使用IN算符用法。
proc sql outobs=3;
select lstknm, stkcd from data.lstkinfo
where stkcd in (000001 600651 000004);
quit;;例3.10 使用BETWEEN-AND算符选择满足一定范围的观测。
proc sql;
select * from resdat.lstkinfo
where lstdt between 1jan1991d and 31dec1991d;
quit;;例3.11 使用匹配算符LIKE选择观测。
proc sql;
select stkcd,lstknm from resdat.lstkinfo
where lstknm like ST%;
quit;;三、ORDER BY语句排序 ;;例3.12 对股票上市时间列进行排序。
proc sql outobs=3;
select lstknm,lstdt from data.lstkinfo
order by lstdt;
quit;;例3.13 按第4列排序
proc sql outobs=3;
select stkcd,lstknm,date,clpr*mcfacpr as adjpr format 8.2
from data.qttndist
order by 4 desc; /*等价于order by adjpr desc*/
quit; ;课堂实践任务;2.将数据集ex.3_2中的数据导出到excel表格ex3_2.XLS
3. 查询data.exchbdqttn_1中所有不同的股票代码;;四、使用汇总函数汇总数据 ;使用SUM函数 ;观测数汇总 ;;使用avg求平均值;五、使用GROUP BY子句进行分组汇总 ;例3.18 分组进行汇总
a)对data.monret中的monret分股票求2005年的月收益均值
proc sql;
title 2005年股票月收益平均值;
select stkcd, avg(monret) from data.monret
where 1jan2005d=date=31dec2005d
group by stkcd;
quit;;;六、用HAVING子句选择分组数据 ;;;3.2.2 创建新表存储查询结果;;;在面向多个数据表的加工中,常用SQL进行数据表的匹配横向并接,使用SQL实现数据表的匹配并接并不需要将原有的数据集按匹配字段排序,而且匹配字段在不同的数据表中可以有不同的名称。
为了用过程SQL拼接SAS数据集,必须
在from从句中列举读入的数据集;
用where从句说明行(观测)是如何匹配的
;例3.22 表china与表 usa的简单连接程序:
proc sql;
select * from data.china, data.usa;
quit;; level china level usa
-----------
文档评论(0)