最新SAS中的SQL语句大全
sql语句大全100句

sql语句大全100句摘要:1.SQL 简介2.SQL 的分类3.数据定义语句4.数据操作语句5.数据查询语句6.其他常用SQL 语句正文:【1.SQL 简介】SQL(Structured Query Language,结构化查询语言)是一种用于管理关系型数据库的编程语言。
它可以执行查询、插入、更新和删除等数据库操作,还可以用于创建和管理数据库表、视图和索引等。
SQL 具有丰富的功能和高度的灵活性,是目前应用最广泛的数据库语言之一。
【2.SQL 的分类】SQL 语句主要分为以下几类:1) 数据定义语句:用于创建和修改数据库中的对象(如表、视图、索引等)。
2) 数据操作语句:用于对数据库中的数据进行添加、修改和删除操作。
3) 数据查询语句:用于从数据库中检索数据。
4) 其他常用SQL 语句:如集合操作、类型转换等。
【3.数据定义语句】数据定义语句主要包括以下几种:1) CREATE:用于创建数据库中的对象,如表、视图、索引等。
2) ALTER:用于修改数据库中的对象。
3) DROP:用于删除数据库中的对象。
例如:- CREATE TABLE student (id INT PRIMARY KEY, name VARCHAR(50), age INT);- ALTER TABLE student ADD COLUMN gender VARCHAR(10);- DROP TABLE student;【4.数据操作语句】数据操作语句主要包括以下几种:1) INSERT:用于向数据库中插入数据。
2) UPDATE:用于更新数据库中的数据。
3) DELETE:用于删除数据库中的数据。
例如:- INSERT INTO student (id, name, age) VALUES (1, "张三", 20);- UPDATE student SET age = age + 1 WHERE age < 30;- DELETE FROM student WHERE age > 30;【5.数据查询语句】数据查询语句主要用于从数据库中检索数据,包括以下几种:1) SELECT:用于查询数据。
SAS中的SQL语句大全

SAS中的SQL语句完全教程之一:SQL简介与基本查询功能本系列全部内容主要以《SQL Processing with the SAS System (Course Notes)》为主进行讲解,本书是在网上下载下来的,但忘了是在哪个网上下的,故不能提供下载链接了,需要的话可以发邮件向我索取,我定期邮给大家,最后声明一下所有资料仅用于学习,不得用于商业目的,否则后果自负。
1 SQL过程步介绍SQL过程步可以实现下列功能:查询SAS数据集、从SAS数据集中生成报表、以不同方式实现数据集合并、创建或删除SAS数据集、视图、索引等、更新已存在的数据集、使得SAS系统可以使用SQL语句、可以和SAS的数据步进行替换使用。
注意,SQL过程步并不是用来代替SAS数据步,也不是一个客户化的报表工具,而是数据处理用到的查询工具。
SQL过程步的特征SQL过程步并不需要对每一个查询进行重复、每条语句都是单独处理、不需要print过程步就能打印出查询结果、也不用sort过程步进行排序、不需要run、要quit来结束SQL 过程步SQL过程步语句SELECT:查询数据表中的数据ALTER:增加、删除或修改数据表的列CREATE:创建一个数据表DELETE:删除数据表中的列DESCRIBE:列出数据表的属性DROP:删除数据表、视图或索引INSERT:对数据表插入数据RESET:没用过,不知道什么意思SELECT:选择列进行打印UPDATE:对已存在的数据集的列的值进行修改2 SQL基本查询功能SELECT语句基本语法介绍SELECT <DISTINCT> object-item <, ...object-item>FROM from-list<WHERE sql-expression><GROUP BY group-by-item <, ... group-by-item>><HAVING sql-expression><ORDER BY order-by-item <, ... order-by-item>>;这里SELECT:指定被选择的列FROM:指定被查询的表名WHERE:子数据集的条件GROUP BY:将数据集通过group进行分类HAVING:根据GROUP BY的变量得到数据子集ORDER BY:对数据集进行排序SELECT语句的特征选择满足条件的数据、数据分组、对数据进行排序、对数据指定格式、一次最多查询32个表。
SAS中用到的SQL语法及结构

SAS中用到的SQL语法及结构在SAS中使用SQL语言,可以对数据进行查询、插入、更新和删除等操作。
以下是SAS中常用的SQL语法及结构的详细介绍。
1.SELECT语句:用于查询数据表中的数据。
SELECT column1, column2, ...FROM table_nameWHERE condition;示例:SELECT*FROM employeesWHERE department = 'HR';2.INSERTINTO语句:用于向数据表中插入新的记录。
INSERT INTO table_name (column1, column2, ...)VALUES (value1, value2, ...);示例:INSERT INTO employees (name, age, department)VALUES ('John Smith', 35, 'Finance');3.UPDATE语句:用于更新数据表中的记录。
UPDATE table_nameSET column1 = value1, column2 = value2, ...WHERE condition;示例:UPDATE employeesSET department = 'IT'WHERE name = 'John Smith';4.DELETE语句:用于从数据表中删除记录。
DELETE FROM table_nameWHERE condition;示例:DELETE FROM employeesWHERE age > 50;5.DISTINCT关键字:用于查询唯一的记录。
SELECT DISTINCT column1, column2, ...FROM table_nameWHERE condition;示例:SELECT DISTINCT departmentFROM employees;6.ORDERBY关键字:用于对查询结果进行排序。
sas sql count 条件

sas sql count 条件
SAS SQL中可以使用COUNT函数进行条件统计。
基本语法如下: SELECT COUNT(*) FROM 表名 WHERE 条件;
这个语句会统计满足WHERE条件的记录数。
例如,统计class表中性别为'M'的学生人数:
SELECT COUNT(*) FROM class WHERE sex = 'M';
统计class表中年龄大于20岁的学生人数:
SELECT COUNT(*) FROM class WHERE age > 20;
COUNT函数也可以与GROUP BY结合使用,对不同分组进行统计: SELECT sex, COUNT(*) FROM class GROUP BY sex;
这个语句会统计class表中男性和女性学生的人数。
通过在COUNT函数中添加DISTINCT,可以统计不同值的个数: SELECT COUNT(DISTINCT sex) FROM class;
SAS SQL中的COUNT函数非常有用,可以快速进行条件统计。
需要注意的是NULL值不会被统计,如果要统计全部记录数,使用COUNT(*)而不是COUNT(字段名)。
sql命令语句

sql命令语句嘿,朋友!你知道 SQL 命令语句吗?这玩意儿可太重要啦!就好比是一把神奇的钥匙,能打开数据库那神秘宝库的大门。
比如说,当你想要从一个超级大的数据库里找出特定的信息,这时候 SQL 的 SELECT 语句就派上用场啦!“SELECT * FROM table_name”,就像你在茫茫人海中精准地找到你要找的那个人一样神奇!你能想象没有它该怎么办吗?还有啊,INSERT 语句,那简直就是给数据库添加新东西的魔法棒呀!“INSERT INTO table_name (column1, column2, column3) VALUES (value1, value2, value3)”,这不就像是给一个空房间里添置新家具嘛,一下子就让它丰富起来了。
UPDATE 语句呢,就像是给已有的东西做个小改造,让它更符合你的需求。
“UPDATE table_name SET column1 = value1 WHERE condition”,这多像给一件衣服换个扣子或者改个颜色呀!DELETE 语句,哎呀,这可有点厉害咯!它就像是把不需要的东西直接清理掉。
“DELETE FROM table_name WHERE condition”,这就像你清理房间时扔掉那些没用的杂物一样果断。
我之前和一个朋友一起做项目,他对 SQL 命令语句不太熟悉,结果在处理数据的时候那叫一个手忙脚乱啊!我就跟他说:“嘿,你得好好学学 SQL 命令语句呀,不然这工作可没法干啦!”他还不信,后来吃了不少苦头才意识到重要性。
SQL 命令语句真的是太实用啦!它是我们和数据库沟通的桥梁,没有它,我们怎么能在数据的海洋里畅游呢?所以呀,一定要好好掌握它,让它为我们的工作和生活带来便利!这就是我的观点,SQL 命令语句,不可或缺!。
SAS中的SQL语句大全

S A S中的S Q L语句大全标准化管理处编码[BBX968T-XBB8968-NNJ668-MM9N]SAS中的SQL语句完全教程之一:SQL简介与基本查询功能本系列全部内容主要以《SQL Processing with the SAS System (Course Notes)》为主进行讲解,本书是在网上下载下来的,但忘了是在哪个网上下的,故不能提供下载链接了,需要的话可以发邮件向我索取,我定期邮给大家,最后声明一下所有资料仅用于学习,不得用于商业目的,否则后果自负。
1 SQL过程步介绍SQL过程步可以实现下列功能:查询SAS数据集、从SAS数据集中生成报表、以不同方式实现数据集合并、创建或删除SAS数据集、视图、索引等、更新已存在的数据集、使得SAS系统可以使用SQL语句、可以和SAS的数据步进行替换使用。
注意,SQL过程步并不是用来代替SAS数据步,也不是一个客户化的报表工具,而是数据处理用到的查询工具。
SQL过程步的特征SQL过程步并不需要对每一个查询进行重复、每条语句都是单独处理、不需要print过程步就能打印出查询结果、也不用sort过程步进行排序、不需要run、要quit来结束SQL 过程步SQL过程步语句SELECT:查询数据表中的数据ALTER:增加、删除或修改数据表的列CREATE:创建一个数据表DELETE:删除数据表中的列DESCRIBE:列出数据表的属性DROP:删除数据表、视图或索引INSERT:对数据表插入数据RESET:没用过,不知道什么意思SELECT:选择列进行打印UPDATE:对已存在的数据集的列的值进行修改2 SQL基本查询功能SELECT语句基本语法介绍SELECT <DISTINCT> object-item <, ...object-item> FROM from-list<WHERE sql-expression><GROUP BY group-by-item <, ... group-by-item>> <HAVING sql-expression><ORDER BY order-by-item <, ... order-by-item>>;这里SELECT:指定被选择的列FROM:指定被查询的表名WHERE:子数据集的条件GROUP BY:将数据集通过group进行分类HAVING:根据GROUP BY的变量得到数据子集ORDER BY:对数据集进行排序SELECT语句的特征选择满足条件的数据、数据分组、对数据进行排序、对数据指定格式、一次最多查询32个表。
数据库sql语句大全

数据库sql语句大全数据库SQL语句大全。
数据库SQL语句是数据库操作的重要组成部分,掌握各种SQL语句对于数据库的管理和应用具有重要意义。
本文将介绍常用的数据库SQL语句,包括数据查询、数据更新、数据删除、数据插入等操作,希望能够帮助大家更好地理解和应用数据库SQL语句。
1. 数据查询。
数据查询是数据库操作中最常见的操作之一,通过SQL语句可以实现对数据库中数据的查询和检索。
常用的数据查询语句包括:SELECT FROM table_name; // 查询表中所有数据。
SELECT column1, column2 FROM table_name; // 查询表中指定列的数据。
SELECT FROM table_name WHERE condition; // 带条件的数据查询。
2. 数据更新。
数据更新是指对数据库中已有数据进行修改操作,通过SQL语句可以实现对数据的更新操作。
常用的数据更新语句包括:UPDATE table_name SET column1 = value1, column2 = value2 WHERE condition; // 更新表中符合条件的数据。
UPDATE table_name SET column = value; // 更新表中所有数据的指定列。
3. 数据删除。
数据删除是指对数据库中已有数据进行删除操作,通过SQL语句可以实现对数据的删除操作。
常用的数据删除语句包括:DELETE FROM table_name WHERE condition; // 删除表中符合条件的数据。
DELETE FROM table_name; // 删除表中所有数据。
4. 数据插入。
数据插入是指向数据库中插入新的数据,通过SQL语句可以实现对数据的插入操作。
常用的数据插入语句包括:INSERT INTO table_name (column1, column2) VALUES (value1, value2); // 向表中插入指定列的数据。
应用SAS中的SQL语句进行数据合并 (1)

应用SAS中的SQL语句进行数据合并1 连接joins分为内连接inner joins和外连接outer joins内连接:仅返回匹配的数据,最多可以有32个表同时进行内连接外连接:返回所有匹配的数据和非匹配的数据,一次只能有两个表或视图进行外连接迪卡尔积:返回表内所有可能的匹配情况。
例如表A有10*20的数据,表B有30*40的数据,则两个表的迪卡尔积有(10+30)*(20+40)=40*60的数据我们先建立两个数据集:data march;input flight $3. +5 date date7. +3 depart time5. +2 orig $3.+3 dest $3. +7 miles +6 boarded +6 capacity;format date date7. depart time5.;informat date date7. depart time5.;cards;219 01MAR94 9:31 LGA LON 3442 198 250622 01MAR94 12:19 LGA FRA 3857 207 250132 01MAR94 15:35 LGA YYZ 366 115 178271 01MAR94 13:17 LGA PAR 3635 138 250302 01MAR94 20:22 LGA WAS 229 105 180114 02MAR94 7:10 LGA LAX 2475 119 210202 02MAR94 10:43 LGA ORD 740 120 210219 02MAR94 9:31 LGA LON 3442 147 250132 02MAR94 15:35 LGA YYZ 366 106 178202 03MAR94 10:43 LGA ORD 740 118 210219 03MAR94 9:31 LGA LON 3442 197 250622 03MAR94 12:19 LGA FRA 3857 180 250271 03MAR94 13:17 LGA PAR 3635 147 250202 04MAR94 10:43 LGA ORD 740 148 210219 04MAR94 9:31 LGA LON 3442 232 250622 04MAR94 12:19 LGA FRA 3857 137 250132 04MAR94 15:35 LGA YYZ 366 117 178271 04MAR94 13:17 LGA PAR 3635 146 250302 04MAR94 20:22 LGA WAS 229 115 180114 05MAR94 7:10 LGA LAX 2475 117 210202 05MAR94 10:43 LGA ORD 740 104 210219 05MAR94 9:31 LGA LON 3442 160 250622 05MAR94 12:19 LGA FRA 3857 185 250132 05MAR94 15:35 LGA YYZ 366 157 178271 05MAR94 13:17 LGA PAR 3635 177 250114 06MAR94 7:10 LGA LAX 2475 128 210202 06MAR94 10:43 LGA ORD 740 115 210219 06MAR94 9:31 LGA LON 3442 163 250132 06MAR94 15:35 LGA YYZ 366 150 178302 06MAR94 20:22 LGA WAS 229 66 180114 07MAR94 7:10 LGA LAX 2475 160 210132 07MAR94 15:35 LGA YYZ 366 164 178271 07MAR94 13:17 LGA PAR 3635 155 250302 07MAR94 20:22 LGA WAS 229 135 180;run;data delay;input flight $3. +5 date date7. +2 orig $3. +3 dest $3. +3delaycat $15. +2 destype $15. +8 delay;informat date date7.;format date date7.;cards;114 01MAR94 LGA LAX 1-10 Minutes Domestic 8 202 01MAR94 LGA ORD No Delay Domestic -5 622 01MAR94 LGA FRA No Delay International -5 132 01MAR94 LGA YYZ 11+ Minutes International 14 302 01MAR94 LGA WAS No Delay Domestic -2 114 02MAR94 LGA LAX No Delay Domestic 0 202 02MAR94 LGA ORD 1-10 Minutes Domestic 5 219 02MAR94 LGA LON 11+ Minutes International 18 622 02MAR94 LGA FRA No Delay International 0 132 02MAR94 LGA YYZ 1-10 Minutes International 5 271 02MAR94 LGA PAR 1-10 Minutes International 4 302 02MAR94 LGA WAS No Delay Domestic 0 114 03MAR94 LGA LAX No Delay Domestic -1 202 03MAR94 LGA ORD No Delay Domestic -1 219 03MAR94 LGA LON 1-10 Minutes International 4 622 03MAR94 LGA FRA No Delay International -2 132 03MAR94 LGA YYZ 1-10 Minutes International 6 271 03MAR94 LGA PAR 1-10 Minutes International 2 302 03MAR94 LGA WAS 1-10 Minutes Domestic 5 114 05MAR94 LGA LAX No Delay Domestic -2 202 06MAR94 LGA ORD No Delay Domestic -3 219 06MAR94 LGA LON 11+ Minutes International 27 132 06MAR94 LGA YYZ 1-10 Minutes International 7 302 06MAR94 LGA WAS 1-10 Minutes Domestic 1 622 07MAR94 LGA FRA 11+ Minutes International 21 132 07MAR94 LGA YYZ No Delay International -2 271 07MAR94 LGA PAR 1-10 Minutes International 4 302 07MAR94 LGA WAS No Delay Domestic 0 ;run;1.1 内连接proc sql;create table innerjoins asselect a.*,b.*from March a,Delay bwhere a.flight=b.flight and a.date=b.date;quit;1.2 外连接1.2.1 左连接left joinproc sql;create table leftjoins asselect *from March aleft join Delay bon a.flight=b.flight and a.date=b.date;quit;1.2.2 右连接right joinproc sql;create table rightjoins asselect *from March aright join Delay bon a.flight=b.flight and a.date=b.date;quit;1.2.3 全连接full joinproc sql;create table fulljoins asselect *from March afull join Delay bon a.flight=b.flight and a.date=b.date;quit;1.3 迪卡尔积proc sql;create table cartesian asselect a.*,b.*from March a,Delay b;quit;这里再大概说明一下内外连接的实现的基本原理:首先生成两个数据表的迪卡尔积,然后再根据where语句来选择符合条件的数据作为输出结果。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SAS中的SQL语句完全教程之一:SQL简介与基本查询功能本系列全部内容主要以《SQL Processing with the SAS System (Course Notes)》为主进行讲解,本书是在网上下载下来的,但忘了是在哪个网上下的,故不能提供下载链接了,需要的话可以发邮件向我索取,我定期邮给大家,最后声明一下所有资料仅用于学习,不得用于商业目的,否则后果自负。
1 SQL过程步介绍1.1 SQL过程步可以实现下列功能:查询SAS数据集、从SAS数据集中生成报表、以不同方式实现数据集合并、创建或删除SAS 数据集、视图、索引等、更新已存在的数据集、使得SAS系统可以使用SQL语句、可以和SAS的数据步进行替换使用。
注意,SQL过程步并不是用来代替SAS数据步,也不是一个客户化的报表工具,而是数据处理用到的查询工具。
1.2 SQL过程步的特征SQL过程步并不需要对每一个查询进行重复、每条语句都是单独处理、不需要print过程步就能打印出查询结果、也不用sort过程步进行排序、不需要run、要quit来结束SQL过程步1.3 SQL过程步语句SELECT:查询数据表中的数据ALTER:增加、删除或修改数据表的列CREATE:创建一个数据表DELETE:删除数据表中的列DESCRIBE:列出数据表的属性DROP:删除数据表、视图或索引INSERT:对数据表插入数据RESET:没用过,不知道什么意思SELECT:选择列进行打印UPDATE:对已存在的数据集的列的值进行修改2 SQL基本查询功能2.1 SELECT语句基本语法介绍SELECT <DISTINCT> object-item <, ...object-item>FROM from-list<WHERE sql-expression><GROUP BY group-by-item <, ... group-by-item>><HAVING sql-expression><ORDER BY order-by-item <, ... order-by-item>>;这里SELECT:指定被选择的列FROM:指定被查询的表名WHERE:子数据集的条件GROUP BY:将数据集通过group进行分类HAVING:根据GROUP BY的变量得到数据子集ORDER BY:对数据集进行排序2.2 SELECT语句的特征选择满足条件的数据、数据分组、对数据进行排序、对数据指定格式、一次最多查询32个表。
这里还要提到的就是,在SAS系统中,对于表名和变量名一般不超过32个字符,对于库名,文件引用名,格式等不能超过8个字符2.3 Validate关键字Validate关键字只存在于select语句中、可以在不运行查询的情况下测试语句的语法、检查列名是否合法、对于不正确的查询将打印其消息。
例:1 proc sql;2 validate3 select Region, Product,Sales4 from sashelp.shoes5 where Region = 'Africa';NOTE: PROC SQL 语句有有效语法。
6 quit;此外,我们还可以用noexec选项也可以用来进行语法测试。
例:7 proc sql noexec;8 select Region, Product,Sales9 from sashelp.shoes10 where Region = 'Africa';NOTE: 由于NOEXEC 选项,未执行语句。
11 quit;这里提示未执行,未提示错误,说明该语句没有语法错误。
但是如果加入一个sashelp.shoes 表里没有字段,这里就会出现错误,例:12 proc sql noexec;13 select Region, Product,Sales,test14 from sashelp.shoes15 where Region = 'Africa';ERROR: 以下这些列在起作用的表中没有找到: test.16 quit;2.4 查询列我们可以像2.3那样查询指定列,也可以用*来查询所有列。
例:proc sql;select *from sashelp.shoes;quit;这里我们可以用feedback选项来查看到底我们选择了哪些列:17 proc sql feedback;18 select *19 from sashelp.shoes;NOTE: Statement transforms to:select SHOES.Region, SHOES.Product, SHOES.Subsidiary, SHOES.Stores, SHOES.Sales, SHOES.Inventory, SHOES.Returnsfrom SASHELP.SHOES;20 quit;这时,我们可以看到从sashelp.shoes表中选择了8个列2.5 消除重复值我们可以用distinct选项来消除重复值。
例如,我们要得到没有重复的所有地区的名称:proc sql;select distinct Regionfrom sashelp.shoesquit;2.6 where子集查询2.6.1 比较运算符先列出where语句用到的比较运算符:LT < 小于GT > 大于EQ = 等于LE <= 小于或等于GE >= 大于或等于NE ^= 不等于例如,我们要查询sales大于100000的所有数据:proc sql;select *from sashelp.shoeswhere sales>100000;quit;2.6.2 in:只要满足in里的任意一个值,表达式即为真,例如,我们要选择Region在Africa 和Eastern Europe的所有数据:proc sql;select *from sashelp.shoeswhere Region in ('Africa','Eastern Europe');quit;2.6.3 逻辑运算符OR | 或AND & 是NOT ^ 非例如,选择Region在Africa和Eastern Europe,且销售额大于100000的所有数据:proc sql;select *from sashelp.shoeswhere Region in ('Africa','Eastern Europe') and sales>100000;quit;2.6.4 CONTAINS或?:判断某列是否包含指定字符串例如,选择列Region包含’Afr’的数据:proc sql;select *from sashelp.shoeswhere Region ? 'Afr';quit;2.6.5 IS NULL或IS MISSING:判断某列数据是否为空例如,如果找出Region为空的数据:proc sql;select *from sashelp.shoeswhere Region is missing;quit;注意,这里我们还可以用以下表达式对where语句进行替换。
如果region为数值型变量,则可以用region=.,如果region为字符型变量,则可以用region= ‘’进行替换。
2.6.6 Between and:选择某一区间的数据例如选择sales大于100000,但小于200000的所有数据:proc sql;select *from sashelp.shoeswhere sales between 100000 and 200000;quit;2.6.7 like:判断是否能匹配某些字符例如,选择以region以A开头的所有地区proc sql;select *from sashelp.shoeswhere Region like 'A%';quit;这里注意有两类通配符,‘%’可以通配任意个任意字符,‘_’只能通配一个任意字符2.6.8 =*:类似匹配这里由于sashelp.shoes里没有符合要求的数据,所有就用书上的例子说明一下吧:Where lastname=* ‘smith’,出来的结果可能是:smith,smythe等2.7 表达式我们可以通过已有的列进行计算来得到新的列,这时用关键词as来给新的列赋列名,例如:proc sql;select Region, Product,Sales,Stores,Sales/Stores as salesperstoresfrom sashelp.shoesquit;这时结果就会多一列salesperstores,用来得到该地区该产品每个商店的平均销售量。
这里要注意的是,在创建表达式时,我们还可以在SQL里用到SAS中的除LAG和DIFF之外的所有函数。
这里我们还可以用表达式计算出来的结果来进行子集查询,但一定要记住用calculated关键词。
例如我们要找出商店平均销售量大于5000的数据:方法一:proc sql;select Region, Product,Sales,Stores,Sales/Stores as salesperstoresfrom sashelp.shoeswhere Sales/Stores>5000;quit;方法二:proc sql;select Region, Product,Sales,Stores,Sales/Stores as salesperstoresfrom sashelp.shoeswhere calculated salesperstores>5000;quit;2.8 查询结果展示2.8.1 order by数据排序默认的排序方式是升序,我们可以用DESC关键词来进行降序排列。
例如以sales降序排列数据:proc sql;select *from sashelp.shoesorder by Sales DESC;quit;这里提示一下,我们可以用任意多列进行排序,包括表达式结果(不用calculated),但最好是选择的列。
2.8.2 LABEL与FORMATLABEL:改变输出变量名的内容FORMAT:改变列的值的输出方式例如,改变salesperstores的label和formatproc sql;select Region, Product,Sales,Stores,Sales/Stores as salesperstoreslabel='sales per stores'format=dollar12.2from sashelp.shoes;quit;2.9 处理SQL常用函数MEAN或AVG:均值COUNT或N或FREQ:非缺失值个数MAX:最大值MIN:最小值NMISS:缺失值个数STD:标准差SUM:求和VAR:方差2.9.1 求和sumproc sql;select Region, Product,Sales,Stores,sum(Sales,Inventory,Returns) as total from sashelp.shoes;quit;2.9.2 求均值avgproc sql;select Region, Product,Sales,Stores,avg(Sales) as salesavgfrom sashelp.shoes;quit;2.9.3 分组求均值group byproc sql;select Region,avg(Sales) as salesavgfrom sashelp.shoesgroup by Region;quit;2.9.4 计数countproc sql;select Region,count(*) as countfrom sashelp.shoesgroup by Region;quit;2.9.5 HAVING数据子集proc sql;select Region,count(*) as countfrom sashelp.shoesgroup by Regionhaving count(*)>50;quit;其它的就不多作介绍了,多用用就熟悉了2.10子查询2.10.1 找出regions平均sales大于全部平均sales的regionproc sql;select Region,avg(Sales) as salesavgfrom sashelp.shoesgroup by Regionhaving avg(Sales)>(select avg(Sales) from sashelp.shoes);quit;2.10.2 ANY关键词介绍>ANY(20,30,40) 最终效果:>20<ANY(20,30,40) 最终效果:<40=ANY(20,30,40) 最终效果:=20 or =30 or =40例如,选择出region为united state的sales小于任意region为africa的sales的数据proc sql;select Region,Salesfrom sashelp.shoeswhere Region='United States'and Sales<any(select Sales from sashelp.shoes where Region='Africa');quit;这个例子没有多少意义,只是说明一下any的用法2.10.3 ALL关键词介绍>ALL (20,30,40) 最终效果:>40<ALL (20,30,40) 最终效果:<20例如,选择出region为united state的sales小于所有region为africa的sales的数据proc sql;select Region,Salesfrom sashelp.shoeswhere Region='United States'and Sales<all(select Sales from sashelp.shoes where Region='Africa');quit;2.10.4 EXISTS与NOT EXISTSproc sql;select *from sashelp.shoeswhere exists(select * from sashelp.orsales);quit;SAS中的SQL语句完全教程之二:数据合并与建表、建视图SAS中的SQL语句完全教程之二:数据合并与建表、建视图索引等本系列全部内容主要以《SQL Processing with the SAS System (Course Notes)》为主进行讲解,本书是在网上下载下来的,但忘了是在哪个网上下的,故不能提供下载链接了,需要的话可以发邮件向我索取,我定期邮给大家,最后声明一下所有资料仅用于学习,不得用于商业目的,否则后果自负。