/*结构*/
/*
PROC SQL;
 SELECT column(s)
 FROM table(s) | view(s)
 WHERE expression
 GROUP BY column(s)
 HAVING expression
 ORDER BY column(s);
QUIT;
*/

/*1. 创建数据集a label 等于空去掉原数据集的label*/
data a;
set sasuser.Students;
label Student_Name= Student_Company = City_State = ;
run;
/*2. 选出数据集a中的所有数据*/
proc sql;
select *
from a;
quit;
/*3. 选择变量student_name 和 student_company所有观测量*/
proc sql;
select Student_Name,Student_Company
from a;
quit;
/*4. 限制观测量的数量*/
/*create table 创建新的表格*/
/*使用outobs = 50 即可选择变量student_name 和 student_company 前五十个观测量*/
proc sql outobs = 50;
create table student as
select Student_Name,Student_Company
from a;
run;
/*5. 给输出的变量重命名,格式为name as name1*/
proc sql;
select Student_Name, Student_Company as company
from a;
quit;

/*6. 去除所有变量都重复的观测*/
proc sql;
select distinct *
from a;
quit;

/*7. 去除变量student_name 和 student_company重复的观测*/
proc sql;
select distinct student_name,student_company
from a;
quit;

/*8. 给变量上标签 label  = ''和格式化 format = .*/
proc sql;
select student_name format = $35.,
student_company label = 'company'
from a;
quit;

/*9. 排序 order by 变量名称 ASC(ascending)升序 DESC(descending)降序*/
proc sql;
select student_name,student_company
from a
order by student_name ASC, student_company DESC;
quit;

/*10. 选择满足条件的子数据集*/
/*between and : where salary between 1000 and 3000*/
/*contains: where student_name contains 'DE' 或者表示为 where student_name ? 'DE'*/
/*in ();包含括号所有的选项*/
/*is missing or is null: 选出所选变量的值为空的观测*/
/*like:选出类似的观测 _ 单个任意变量 %任意变量任意数量的*/
proc sql;
select *
from a
where student_name contains 'A' and student_company in ('A','B');
quit;

proc sql;
select *
from a
where student_company is missing;
quit;

proc sql;
select *
from a
where student_name like 'A_l%';
quit;

/*11. 计算变量表达式calculated*/
/*where calculated new_salary > 500; or where  (salary * 0.1)  > 500;*/
proc sql;
select ID, (salary * 0.1) as new_salary
from sasuser.pilots
where calculated new_salary > 500;
quit;

proc sql;
select ID, (salary * 0.1) as new_salary
from sasuser.pilots
where  (salary * 0.1)  > 500;
quit;
/*12. 多条件输出新变量*/
/*case 表达式 = < > NOT NE AND OR IN,between and, contains, ?, is null, is missing = like*/

proc sql;
select salary,
case
when salary between 0 and 1000 then 'LOW'
when salary between 1001 and 2000 then 'MEDIUM'
when salary between 2001 and 3000 then 'HIGH'
else 'VERY HIGH'
end as new_flag
from sasuser.pilots;
quit;

/*13. 对数据统计和求和*/
/*count 类似于 proc freq*/
/*max,min,sum 类似于proc means*/
/*avg/mean, count/freq/n,sum,max,min,nmiss,std,var,*/
/*T,uss(uncorrelated sum of square),css(corelatted sum of square),range*/

proc sql;
select ID, firstname, count(distinct ID) as t_salary /*distinct 选取唯一的ID进行统计*/
from sasuser.pilots
group by ID
order by firstname;
quit;

proc sql;
select ID, firstname, max(salary) as M_salary
from sasuser.pilots
group by firstname
order by firstname;
quit;

proc sql;
select max(salary) as M_salary, uss(salary) as uss_s, css(salary) as css_s
,range(salary) as r_s,avg(salary) as a_s,sum(salary) as s_s,std(salary) as std_s
from sasuser.pilots;
quit;

/*14. 计算缺失值的数量 NMISS*/
data miss;
input id;
cards;
1
.
2
3
4
.
.
5
6
.
78
.
1
.
78
;
run;
proc sql;
create table miss_sts as
select nmiss(id) as N_missings,
count(id) as N,calculated N_missings + calculated N as total
from miss;
quit;

proc sql;
select id, count(id),nmiss(id)
from miss
group by id;
quit;

/*15. 去掉某一列和保留某一列*/
/*drop = 变量名称*/
/*keep = 变两名称*/

proc sql;
create table student1(drop = city_state) as
select *
from sasuser.students;
quit;

/*16. 直接删除某几行*/
/*delete from*/
data pilots;
set sasuser.pilots;
run;

proc sql;
delete from pilots
where salary > 100000;
quit;

/*17. 使用having*/
/*对每一个分组进行筛选*/
proc sql;
select id, firstname, count(salary) as s_s
from sasuser.pilots
group by id
having s_s >1;
quit;

/*18. 嵌套使用sql*/
proc sql;
create table pilots as
select *
from sasuser.pilots
where salary > 100000;
quit;
proc sql;
select id from sasuser.pilots
where id not in(select id from pilots);
run;

sas proc sql 基础入门 (原创作品,转载请注明出处 )相关推荐

  1. 李望 原创作品转载请注明出处 《Linux内核分析》MOOC课程http://mooc.study.163.com/course/USTC-10000290

    一次汇编分析的经历 关键词(为了搜索引擎优化,为了点击量) 寄存器.ia32.AT&T汇编.intel汇编.x86架构.x64架构 背景 为了想知道为什么i++ ++i不是原子操作 测试方法 ...

  2. 王鸿飞原创作品转载请注明出处《软件工程(C编码实践篇)》MOOC课程http://mooc.study.163.com/course/USTC-10000

    <软件工程>学习心得与感悟             还清楚地记得入学面试时院长问我的问题,"为什么要报考软件学院"?我坚定地回答,"我要来科大学习专业.规范的 ...

  3. xml模糊查询语句_2Mybatis学习笔记07:动态SQL语句(原创,转载请注明来源)

    开发环境: 硬件环境:Windows10+JDK 1.8: 软件环境:Java+Eclipse+Mybatis+maven3.6+tomcat8.0+Postgresql 10.6: 用到的jar包: ...

  4. 查看文件时去除注释说明内容(原创贴-转载请注明出处)

    需求说明:好多软件配置文件中会有许多以#开头的注释说明内容和空行,需求是在查看文件的时候不显示这些内容. 1:过滤掉以#开头的行. 命令格式:cat 文件路径 | grep '^#'举例:cat /u ...

  5. ev3 java编程_使用C语言开发EV3程序(原创,转载请注明出处)

    2.安装c4ev3(http://c4ev3.github.io/),双击c4ev3-withGCC-setup.exe进行安装,默认安装即可.如果你下载的是带GCC的安装包,接下来会自动安装Code ...

  6. 淘宝网的实习生笔试题以及经历--2011 4 1(转载请注明出处,即原创网址)

      昨天晚上7:00在西北工业大学,参加了淘宝网的实习生笔试(技术类),我应聘的是软件研发类.这一方面的人很多. 愚人节这一天,而且又下起了雨,路上车慢的很,感觉挺不顺利的,心情有点糟.到达笔试现场后 ...

  7. 2015年1月微信上线原创声明功能:智能添加原创标识 转载自动注明出处

    微信上线原创声明功能:智能添加原创标识 转载自动注明出处 2015.01.23 08:46:00来源: TechWeb.com.cn 作者:周小白 http://www.techweb.com.cn/ ...

  8. 片上总线Wishbone 学习—— 转载请注明出处:http://blog.csdn.net/ce123

    片上总线Wishbone 学习(零)前言 声明:版权所有,欢迎转载! 转载请注明出处:http://blog.csdn.net/ce123 为了更加升入的理解片上系统,比如S3C2440等,今天开始学 ...

  9. 引用请注明出处和转载请注明出处?我的看法

    很多文章和网站 都有这么一条: 引用请注明出处和转载请注明出处,有的无非多了个什么 保留法律权力 之类的 其实想想看,国外XX 小站 "拿去用了" 怎么办,起诉? BT下载&quo ...

最新文章

  1. ASP.NET2.0自定义控件组件开发 第六章 深入讲解控件的属性
  2. argis怎么关掉对象捕捉_你和你的网恋对象,都怎么样了?
  3. url主机域名可以省略_网站迁移虚拟主机怎么样能不影响网站优化
  4. linux切换软件版本,Linux中dpkg工具update-alternatives实现符号链接软件版本的切换(转)...
  5. 实现图片验证码,其实就是简单的验证码实现,记录一下
  6. git/github使用详解
  7. Hibernate---架构
  8. rest spring_Spring REST:异常处理卷。 3
  9. mysql 一张表的数据插入另一张表的sql语句
  10. [Node] 基础知识
  11. RHCSA认证培训+考试七天实录(六)
  12. 3D 目标检测综述梳理图解
  13. 台式计算机如何取消屏幕密码,台式电脑怎么取消锁屏?
  14. ORACLE的jdbc驱动包版本
  15. 河北省级环保督察回头看全覆盖 大气污染问题成举报重点
  16. 为何沃比帕克模式无法复制?
  17. 这样软件开发人才级别的划分你同意吗
  18. Go--Redis快速入门指南
  19. ubuntu 3D桌面搞定了
  20. 翻译Prism4碰到生单词

热门文章

  1. Java项目:springboot基于bs的企业考勤管理系统
  2. 学习笔记-java基础-网络编程
  3. Android 源码编译问题集锦
  4. 利用tushare和pandas获得沪深300指数在每个工作日的平均日收益率
  5. Android设备的识别
  6. 学会锻炼感悟爱与幸福的能力
  7. linux 查看系统详细信息
  8. 小周教我看论文第一弹
  9. 2021年11月30日
  10. Intellij IDEA 最新旗舰版注册激活破解(亲测,可用)