sql 合并行内容_SAS高级编程公开课之一SQL
假设我们要处理这样一个过程:从SV中获取每位受试者的最后访视日期,然后与ADCM合并。如果我们用data步,处理过程大致如下:
在SV中计算每个USUBJID的访视日期;
通过某些语句(例如IF FIRST/LAST.USUBJID)得到每个USUBJID的最大日期;
通过PROC SORT对数据集排序;
最后Merge合并。
这样至少也得4个以上的data步和proc步。如果问题复杂,程序行数只会更多,而SQL却能简化程序,如下图所示。
SQL可以合理地处理“多对多”,而这是Merge语句无法实现的。另外其连接数据集的功能非常强大,通过各种形式的Join语句和外加条件,有时能将数十上百行的普通SAS语句用一个SQL表示(此时的SQL语句肯定没有比一个个的data步和proc步好理解)。
SQL可以更程序表达更简洁。
上图是PROC SQL中left join所得结果。其实PROC SQL查询优化器处理连接过程非常复杂,不像data步中的merge语句那种“往下走,匹配,再往下走”,但从概念上讲,我们可以大致了解下PROC SQL处理Joins过程的一般步骤。
假设我们要生成这样一张表。第一行“基线(筛选期)平均值”是对所有人在这个test下的基线(筛选期)BASE平均。而到了后面的访视,由于失访或未查等原因,导致在第二个阶段的人数可能会减少,此时列标题中的“基线平均值”表示这部分剩下来的人的基期值。比如说,基线期有100个人,我们对这100个人有个平均值BASE1;第二周期只剩80个人,而80个人每个人也有个基线期的BASE,我们再只对这80个人平均得到BASE2,显得BASE1和BASE2是不完全相等的,应该是一个较稳定的变化值。至于编程,最简单的方法是在两个阶段分别选择适当的条件,前者对AVAL求平均,后者对BASE求平均。另外一个思路是要找到还剩多少人在第二周期。编程中处理类似于"基于一定条件再做其他查询"的思路,我们可以试试Subset Query。语法形如:
select .. from ... where usubjid in (select distinct usubjid from ...)
GROUP BY语句最常见用于对各个分类或项目的汇总呈现。
但如果没有遵守运用GROUP BY语句相关语法,是得出不正确结果的。
下面log中的这行remerging note最好不要让它存在,因而这里“a.*”用法是不严谨的。
SQL可以进行变量和观测的修改、增加或减少,SQL视图可以大大减少数据存储空间,可以视作数据集来使用,数据索引可在一定条件下更快地完成查询过程,SQL可以在没有关键变量的情况下强行合并,等等这些情形,我们在逐渐步学习和实践工作中,发现可供讨论和研究的问题还蛮多的,文章篇幅有限,这里不再赘述。
鉴于很久之前就存在的想法,我很乐于和大家分享一些知识或者技能,如果能对大家的帮助哪怕只有一点点,我都觉得很快乐、很知足。我想起我备考研究生的那段岁月,线性代数我一直觉得比较懵懂,虽然知识不是很难,题目也能做,但感觉还是很不好,觉得学得很零散,一碰就会碎那种。直到有天我在YOUKU上看到某个辅导学校一位叫曾祥金的老师的免费考研视频资料,豁然开朗,醍醐灌顶。最后终于发现,原来线性代数的知识内容就是一条线,前后是紧密相连的,前面的小知识为后面所用,最后形成了一套很标准规范的做题方法。虽然时过境迁,物似人非,但当时那种“顿悟”的感觉还历历在目,仿佛昨日!
SAS BASE的视频早已上传完毕,SDTM系列文章也一直在保持更新,很多朋友向我反馈获益非浅,希望我一直写下去。我特别欣慰和感动,这让我觉得,我的付出和坚持是值得的!SAS Advanced的视频我一直在考虑和准备当中,如今终于完成了第一部分,是时候拿出来与大家分享了。对SAS高级编程感兴趣的朋友,可以阅读以下内容,并与我取得联系,我们一同学习SAS!
培训课程的基本介绍
授课内容:
SAS高级编程之一SQL
授课时间:
2019年04月08日到2019年04月15日,每晚8点开始,共8天8章,每天一章。
课程目录:
1.SQL基本查询
2.SQL高级查询
3.SQL水平合并表
4.SQL垂直合并表
5.SQL创建和管理表
6.SQL创建和管理索引
7.SQL创建和管理视图
8.SQL管理进程
授课方式:
1)加团长微信Adrian2hope,确认报名;
2)建立QQ聊天群;
3)通过QQ聊天群分享电脑屏幕。
此培训内容不限于医药行业,同样适合其他业内对SAS感兴趣的朋友,学过BASE的可以听,SAS零基础也无妨。本课程内容非常地全面系统,据粗略估计,平常一般使用可能只占此内容的4成左右,也就是说,我们没有完全最大化的利用SQL。对已经参加工作的,可以提升职业技能;对未曾毕业或刚毕业的学生,可以提升自己找工作的砝码;对单身少男少女的,在同一个聊天室遇到真爱也不是没有可能的!
JOIN US
sql 合并行内容_SAS高级编程公开课之一SQL相关推荐
- 技术公开课:SQL Server 高可用性解决方案概述(下)
2014年4月10日(周四) 20:30-22:00 [技术公开课]4月10日资深数据库工程师舒永春带来<SQL Server高可用性解决方案概述下篇>精彩课程,SQL Server 高可 ...
- 【思否编程公开课】限时免费 网络安全之 Kali 渗透入门实战
思否编程打造全新公开课系列,邀请大神级讲师分享技术干货,快来围观看直播~ 主题 网络安全之 Kali 渗透入门实战 内容介绍: 网络安全法的颁布后对企业网络安全建设有严格的要求,如果企业出现安全事故, ...
- sql 列求和_Excel VBA高级编程SQL检索(二)合并相同项并求和
上一篇我们已经试过用Excel 自带的索引完成了一次SQL检索的操作,今天小编带你用VBA实现SQL检索,并实现相同项求和的功能 SELECT 字段名1,SUM(字段名2) FROM [原始数据$]) ...
- Martin Odersky Scala编程公开课 第二周作业
Functional Programming Principles in Scala by Martin Odersky 这一周的主要内容是函数.函数是scala语言最重要的概念,既可以当作函数的参 ...
- Martin Odersky Scala编程公开课 第三周作业
Functional Programming Principles in Scala by Martin Odersky 这次的作业叫做Object-Oriented Sets.要完成一个完整的类, ...
- 武汉Scratch青少儿趣味编程公开课,强势来袭!
刚会打酱油的孩子就能学编程了吗?真的,这不是在逗你玩! 近两年来,人工智能(AI)概念大热,少儿编程教育也随之受到了不少家长的关注.但家长们可别误以为少儿编程教育只是为了把孩子培养成未来的程序员. 在 ...
- 技术公开课:SQL Server 索引优化原则与工具
2014年3月6日(周四) 20:30-22:00,讲师舒永春将带来3种不同类型索引的工作原理.优化原则.技巧及实用工具讲解,有效提高索引的查询效率! 课程简介: SQLServer有3种不同类型的索 ...
- Martin Odersky Scala编程公开课 第一周作业
Functional Programming Principles in Scala by Martin Odersky Martin教授是scala语言的creator,在coursera上面有s ...
- java sql查询空内容_返回null值而不是sql查询中的空集
比方说,有两个表: select * from users; +-------+------+ | login | type | +-------+------+ | test1 | A | | te ...
最新文章
- webscraper多页爬取_【实践】笔记_Chrome插件webscraper爬取天眼通数据
- 阿里云弹性公网IP(EIP)的使用限制
- 一些开源搜索引擎实现——倒排使用原始文件,列存储Hbase,KV store如levelDB、mongoDB、redis,以及SQL的,如sqlite或者xxSQL...
- 这个图形的体积有限,但表面积却是无穷大
- 【笔记 】栈底层 循环队列的处理 链栈 链队列
- 展示 测速_科技产品 | 人工智能amp;科技展示厅——助力高校人工智能学科建设及产业人才培养...
- [Winform]安装在C盘,无操作权限的一个解决办法
- 同态加法_同态的Spotify
- [51 nod 1238] 最小公倍数之和 V3(杜教筛)
- 22 | 哈希算法(下):哈希算法在分布式系统中有哪些应用?
- java mock server_java – 使用MockRestServiceServer模拟REST调用
- linux 中rpc 服务器,实现Linux环境下编程RPC通信之个人经验总结(转)
- python用matplotlib画雷达图_Matplotlib绘制雷达图和三维图的示例代码
- 计算机iis配置具体步骤,IIS配置运行ASP网站配置与注意事项
- python3两个三阶矩阵相乘_矩阵相乘的实现-python
- module项目没有蓝色小方块问题
- I Want To Spend My Lifetime Loving You
- C/C++在线餐馆预订管理系统
- 使用moment格式化日期
- 从前慢-Python