| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 大数据 -> Kaggle大学之SQL提高篇 -> 正文阅读 |
|
[大数据]Kaggle大学之SQL提高篇 |
目录 第一节:joins and unions介绍:使用的素材是两个表,一个是主人信息表,一个是宠物信息表。两个表依靠宠物的id来链接。往常我们使用的是inner join如今我们使用的是left join ,而left join 的意思就是我们的查询表包含左边的表的所有行。如果使用Full join则返回的是包含两个表中所有行的表。 union:垂直连接列,意思就是合并两个表,竖向合并。如果在union all时不想要重复值,可以使用UNION distinct 练习1:每个问题收到回答需要多久这个教程做的非常好,先给出一个错误实例,看你怎么利用所学知识修改。
这是错误示例? 结果是 Percentage of answered questions: 100.0% Number of questions: 134685 应该是差了很多 因为100%失去了查询的意义。所以这个练习说可能是采用的join类型无意中排除了未回答的答案。 结果把INNER改成LEFT就好了,提示是无论回答表中是否存在,应该保留问题表中的所有问题。 练习2:查找提出问题但没有提供答案的客户我看了一下左边的是问题,右边的是回答,所以肯定要保留全部问题,因为可能有人只提出问题不回答,这也是题目所问的。 练习3:两个join给的例子是查询主人宠物饲料三个表 主从关系是:主人和宠物都要包括,饲料表里有但是宠物表里没有的宠物视为没有 查询id,第一次创建问题的时间,第一次回答问题的时间
这里我第一次不是很理解,主要在这两个从属关系的表的顺序有无先后,后来发现并无,只要索引写对了就行,另外?WHERE也要注意,以谁为主 练习4:查询某日有多少用户发布信息(必须用UNION)首先题目的条件是不同的客户,因此这里使用UNION DISTINCT 这个题目出的妙啊,把问题表和回答表UNION起来
这里又用到了EXTRACT 还有一件事情就是,引用表时不能用"一定要用他的那个引号? 第二节:分析函数我一直都以为SQL不需要函数,只要提取出来就行了,但是看了看一些关于求职的帖子,好像SQL是他们主要的工具,要更精通一点,我今天先把这些学了,下一次再好好搞一搞存储过程。 他给的例子是计算一个运动员每天跑100米的时长平均值。 所有分析函数都有一个over子句,它定义了计算中所使用的行集,over子句中一共有三个部分: PARTITION BY 子句将表的行划分为不同的组。? ROWS BETWEEN 1 PRECEDING AND CURRENT ROW - 前一行和当前行。 这些是更多的窗口函数。 三种类型: 1.聚合函数 MIN()(或 MAX()) - 返回输入值的最小值(或最大值) 2.导航函数 FIRST_VALUE() (或 LAST_VALUE()) - 返回输入中的第一个(或最后一个)值 3.编号函数 ROW_NUMBER() - 返回行在输入中出现的顺序(从 1 开始) 练习1:预测出租车需求量这个题目的功能就是和excel与python数据分析重复的,可能有他一定的存在的意义吧。 要求想要得到出租车每日的出行次数 可是他很奇怪,并不是直接算次数,而是要输出两列,一列是日期,另一列是平均每日出行次数
说几个注意的点 公共表达式 ?分析函数求的是平均出行次数 order by 分区 然后ROWS是筛选想要的行 这是公共表达式查询的结果 ?这是整体的结果 ?avg_num_trips - 显示在一个窗口内计算的平均每日出行次数,包括当前日期的值,以及前 15 天和后 15 天的值,只要这些天数在两年的时间范围内.例如,在计算此列中 2016 年 1 月 5 日的值时,窗口将包括前 4 天、当前日期和后 15 天的出行次数。 这是教程给的解释 我对这种计算平均值的方法感觉到很迷惑。 练习2:分区无疑就是加一个条件
这个地方疑问也很多,over就用来干这个?? 练习3:两次旅行之间耗费了多长时间?这里使用了一个求时间差的东西,我还搞不太懂,以后再学学
第三节:嵌套和重复数据引入一种新概念,嵌套列,在这一列里有两种不同类型的数据 ?这个就是嵌套,把这两个表合成一个表会更容易观看 但这明显不是存储数据的形式,会造成资源的极大浪费,而且如果想做这样的事的话,真就excel 谁叫他想做呢? ?这个叫做重复,表二是很标准的存储格式,但是不够直观,需要进行处理 处理嵌套数据时: 使用一个UNNEST函数,这个函数的大概作用如此。 处理嵌套又重复的数据: 这是另一种问题的处理方法。 练习1:最流行的编程语言是什么?
?这里新奇的东西就是 UNNEST AS 1,和案例一样。但是我还是不太懂。 ε=(′ο`*)))唉,我要是在工作就好了,这样会有紧迫感,有压力就会学的快一点。 但是在没有压力时精力充沛的去学习一样东西也是好事。 练习2:存储库中那些语言使用最多??
第四节:书写更有效率的sql首先这个教程引入了两种方法,
接下来引入比较 1.只查询你想要的行而不是所有:*和size 比较当然查询所有信息会占用更多内存。 2.如有可能读取尽可能少的数据:查询姓名与查询id 3.避免N:N的连接:使用公共表达式来改变N:N的情况 练习1:哪个查询最有效率项目背景,你是一家国际宠物服装公司的员工,现在我们要评估一下哪个查询最有效率 1.一位软件工程师为运输部门编写了一个应用程序,以查看哪些项目需要运输,以及这些项目要去仓库的哪个通道。她想让你写这个问题。它将涉及存储在订单表、装运表和仓库位置表中的数据。运输部门的员工将在平板电脑上启动此应用程序,点击“刷新”,您的查询结果将显示在一个漂亮的界面中,这样他们就可以看到要将哪些服装发送到哪里。 2.首席执行官想要一份所有客户评论和投诉的列表……这些评论和投诉可以方便地存储在一个评论表中。有些评论真的很长…因为人们喜欢你为鹦鹉设计的海盗服装,他们不停地写他们有多可爱。 3.养狗的人比以往任何时候都受到更多的保护。所以你们的工程部门用嵌入式GPS跟踪器和无线通信设备制作了服装。他们每秒向你的数据库发送一次服装坐标。然后你就有了一个网站,主人可以在那里找到他们的狗的位置(或者至少是他们为这些狗准备的服装)。要使此服务正常工作,您需要一个查询,显示给定人员拥有的所有服装的最新位置。这将涉及CustomLocations表和CustomOwners表中的数据。 答案是3 原因3:因为每秒都会发送每个服装的数据,所以这个查询可能涉及最多的数据(到目前为止)。它将定期运行。因此,写这口井可以在反复的基础上获得回报。 为什么不是1:这是要优化的第二个最有价值的查询。它将定期运行,并涉及合并,这通常是一个可以提高查询效率的地方 为什么不呢2:听起来它只会运行一次。所以,这可能并不重要,如果它需要几秒钟额外或成本几美分运行一次。而且,它不涉及连接。虽然数据有文本字段(评论),但这是您需要的数据。因此,您不能在select查询中保留这些内容来保存计算。 可能运行次数最多的应该是最有效率的吧。 练习2:更快更节约通过服装地址和服装主人的两个表来建立查询
这个从服装拥有者和所有服装地址找出所有筛选项。 如何优化
优化就是直接查询Mitzie的服装id 没有太多的感受,下一步我就去牛客网好好练练 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/23 22:05:02- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |