如果写不出来就多找一些练习,网上很多,认真学习两三个星期几本就可以胜任大多数数据分析岗位的SQL工作,认真学习练习,不是三天打鱼那种
现在有一张全校学生信息表stu_table,这张表存储了每位学生的id、name(姓名)、class(班级)、sex(性别)以及一些其他信息,现在我们想知道每个班有多少学生,该怎么实现呢?
stu_table表如下所示:
还是前面的全校学生信息表stu_table,现在我们想知道每个班男生女生分别有多少个?
还是前面的全校学生信息表stu_table,现在我们想知道这张表中姓张的同学有多少个?
还是前面的全校学生信息表stu_table,现在我们要获取id从小到大排序以后第3-5位的同学的信息。
现在有一张学生成绩表score_table,这张表存储了每位学生的id、name(姓名)、class(班级)、score(成绩),现在我们想要把挂科(成绩小于60)的同学信息筛选出来。
score_table表如下所示:
我们现在需要根据学生成绩表score_table查找出姓张的且挂科的同学的信息。
我们有一张表month_table记录了每月的销售冠军信息,这张表存储了每月销冠的id、name(姓名)、month_num(月份),现在需要获取销冠次数超过2次的人以及其对应的做销冠次数。
month_table表如下所示:
现在有一个月份销售额记录表sale_table,这个表记录了每年每月的销售额,现在我们想看下今年(2019年),月销售额最高涨幅是多少?
sale_table表如下所示:
我们有一张学生科目成绩表score_info_table,这张表记录了每一位同学每一科目的成绩,每一位同学的每科成绩是一行,现在我们想要通过这张表获取到每科成绩都大于70分的学生。
score_info_table表如下所示:
现在有一个学生信息表stu_info_table,这张表存储了每位学生id、name(姓名)、class(班级)、grade(年级),现在我们想获取这个学校所有年级以及所有班级的信息,即哪些年级有哪些班级,该怎么获取?
stu_info_table表如下所示:
现在我们有下面这么一个表row_col_table,这个表中每年每月的销量是一行数据:
我们需要把上面这种纵向存储数据的方式改成下表所示的横向存储:
现在表col_table中有col_1、col_2、col_3三列数据,我们需要根据这三列数据生成最后一列结果列,结果列的生成规则为:如果col_1大于col_2时选col_1列,如果col_2大于col_3列时选col_3列,否则选col_2列。
col_table表如下所示:
现在有一个某科目的学生成绩表subject_table,这张表存储了每位学生的id、score(成绩)以及其他信息,我们想知道60分以下、60-80分、80-100分这三个成绩段内分别有多少学生,该怎实现呢?
subject_table表如下所示:
现在我们有一个订单明细表order_table,这张表中存储了order_id(订单id)、order_date(订单日期)以及其他订单相关信息,现在我们需要每天获取本周累计的订单数,本周累计是指本周一到获取数据当天,比如今天是周三,那么本周累计就是周一到周三。这个该怎么实现呢?
order_table表如下所示:
我们现在需要根据订单明细表order_table,获取当日的订单数;当日的环比订单数,即昨天的数据。
现在有一张学生信息表table1,这张表记录了id、name等一些其他信息;还有另外一张获奖名单表table2,这张表记录了获奖学生的id和name。现在我们想要通过table1获取获奖学生的更多信息。
现在有一张用户登陆表user_login,这张表记录了每个用户每次的登陆时间,uid(用户id)和login_time(登陆时间)。我们想看用户的次日留存数、三日留存数、七日留存数,只要用户从首次登陆以后再有登陆就算留存下来了,该怎么实现呢?
user_login表如下所示:
现在有一张学生科目表course_table,这张表存储了每一位学生的id、name(姓名)、grade(年级)、course(选修课程)以及一些其他信息,现在我们想知道哪门课被学生选的人数最多?
course_table表如下所示:
还是前面的course_table,现在我们想知道每个年级被选择最多的三门课程,该怎么实现呢?
20 求累积和
现在有一张2019年一整年的订单表consum_order_table,consum_order_table包含order_id(订单id)、uid(用户id)、amount(订单金额),现在我们想看下80%的订单金额最少是由多少用户贡献的,该怎么实现呢?
consum_order_table表如下所示:
很多人喜欢一上来就推荐好几本书,但是这些书晦涩难懂,对于初学者入门非常不友好。入门只需要一本书就够了,而不是多本。入门要让初学者看懂才是最重要的,而不是整那些高大上的东西。为了帮助刚毕业找工作,或者想转行成为数据分析师工作的朋友,我会用下面内容教会你怎样用最快速、最容易理解的方式学会数据库和SQL,并使用SQL进行数据分析:
1.入门
2.简单查询
3.汇总分析
4.复杂查询
5.多表查询
6.求职面试题
7.检验SQL的学习效果
第1部分:入门
学习以下内容:
1)了解数据库的基本概念
2)如何安装数据库?
3)表的创建、删除和更新
4)数据的插入、删除和更新数据
第2部分:简单查询
学习以下内容:
1)基本的查询语句
2) 如何指定查询条件?
3)注释和 SQL 语句注意事项
4)学会运算符指定复杂的查询条件
5)字符串模糊查询
第3部分:汇总分析
学习以下内容:
1)如何进行汇总分析?
2)如何对数据分组?
3)如何对分组结果指定条件?
4)用 SQL 解决业务问题的套路是什么?
5)如何对查询结果排序?
6)如何看懂 SQL 报错信息?
第4部分:复杂查询
学习以下内容:
1)视图(什么是视图,如何使用,有什么用,注意事项)
2)子查询、标量子查询、关联子查询
3)各种常用函数
第5部分:多表查询
在有多张表的情况下,表和表之间的运算和联系就变得很重要,这部分学习多个表如何查询:
1)表的加法
2)联结,包括交叉联结、内联结、左联结、右联结、全联结
3)一张图记住各种联结
4)联结应用案例
5)case表达式
第6部分:求职面试题
这里总结了常见的面试题,为以后找工作面试做准备:
还有一本免费教程《图解SQL面试题》
第7部分:检验SQL的学习效果
如何验证上面SQL的学习效果呢?
在SQL练习平台sqlzoo中将习题做一遍,不仅是检验前面的学习效果,更是通过实践加强熟悉前面的知识。这里不能偷懒,一定要将每一道提做一遍,以后找工作面试都能用得上。如果现在偷懒,后面找不到工作的恶果可是要自己负责的。
sqlzoo地址:http://sqlzoo.net/wiki/SELECT_basics/zh
第8部分:推荐书
我推荐参考书看《SQL基础教程》(作者:Mick)。
也有人推荐《sql必知必会》,但是对于零基础的朋友来说Mick的《sql基础教程》更容易看懂学会,非常适合入门者学习。如果只推荐一本书的话,我只推荐这本。
我是猴子,中科院硕士/前IBM高级软件工程师/豆瓣8分《数据分析思维》作者,我和知乎联合出品的「数据分析训练营」即将开课,3天带你掌握数据分析实用技巧,包含课程+实战带练,工作提效、升职加薪必备神器!
报名还有独家Excel自学资料领取,点击开启数据分析升职加薪密码:
这是我看到的最准确的总结。
总的来说,就是中国的高考相对公平,所以性价比极高,所以其他活动都可以适当让步。