![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
SQL
进击的可乐!
公众号【可乐的数据分析之路】。出版书《Excel数据处理与分析——数据思维+分析方法+场景应用》
展开
-
SQL今日一题(19):表复用
这是SQL今日一题的第19篇文章题目描述对所有员工的当前(to_date='9999-01-01')薪水按照salary进行按照1-N的排名,相同salary并列且按照emp_no升序排列用到的是salaries表salaries表题目给了输出展示表如下,注意第2条和第3条记录,薪资相同,排名都为2。方法1selects1.emp_no,s1.salary,count(distincts2.salary)asrankfromsalariess1,s...原创 2020-12-31 15:23:39 · 213 阅读 · 0 评论 -
SQL今日一题(18):3表连接
这是SQL今日一题的第18篇文章题目描述统计各个部门的工资记录数,给出部门编码dept_no、部门名称dept_name以及部门在salaries表里面有多少条记录sum这题用到salaries表、dept_emp表和departments表salaries表dept_emp表departments表方法selectdp.dept_no,dp.dept_name,count(s.salary)assumfromdept_empde,depart...原创 2020-12-23 13:59:09 · 214 阅读 · 0 评论 -
SQL今日一题(17):涨幅
这是SQL今日一题的第17篇文章题目描述1查找员工编号emp_no为10001其自入职以来的薪水salary涨幅(总共涨了多少)growth(可能有多次涨薪,没有降薪)用到salaries表salaries表方法1selectMAX(salary)-MIN(salary)asgrowthfromsalarieswhereemp_no=100011、where子句给定限定条件,是10001号员工where emp_no = 100012、...原创 2020-12-19 13:58:10 · 769 阅读 · 0 评论 -
SQL今日一题(16):又双左连接
这是SQL今日一题的第16篇文章题目描述查找所有员工的last_name和first_name以及对应的dept_name,也包括暂时没有分配部门的员工这题用到employees表、dept_emp表和departments表employees表dept_emp表departments表方法1selecte.last_name,e.first_name,dp.dept_namefromemployeeseleftjoindept_empde...原创 2020-12-16 15:59:52 · 229 阅读 · 0 评论 -
SQL今日一题(15):limit用法
这是SQL今日一题的第15篇文章题目描述1获取当前(to_date='9999-01-01')薪水第二多的员工的emp_no以及其对应的薪水salary这题用到salaries表salaries表方法selectemp_no,salaryfromsalarieswhereto_date='9999-01-01'orderbysalarydesclimit1,11、思路很简单了,先用where子句给定限制条件:where to_date =...原创 2020-12-16 15:41:20 · 657 阅读 · 0 评论 -
SQL今日一题(14):平均值/内连接
这是SQL今日一题的第14篇文章题目描述统计出当前(titles.to_date='9999-01-01')各个title类型对应的员工当前(salaries.to_date='9999-01-01')薪水对应的平均工资。结果给出title以及平均工资avg。这题用到salaries表和titles表,salaries表是薪资,titles表是职称表,两个表以emp_no连接salaries表titles表方法selectt.title,avg(s.salary)..原创 2020-12-16 15:08:34 · 271 阅读 · 0 评论 -
SQL今日一题(13):取奇数
这是SQL今日一题的第13篇文章题目描述查找employees表所有emp_no为奇数,且last_name不为Mary(注意大小写)的员工信息,并按照hire_date逆序排列(题目不能使用mod函数)这题用到employees表employees表方法select*fromemployeeswhereemp_no%2=1andlast_name<>'Mary'orderbyhire_datedesc1、奇数,那就是除以2...原创 2020-12-16 14:56:31 · 2663 阅读 · 2 评论 -
SQL今日一题(12):分组过滤计数
这是SQL今日一题的第12篇文章今天有两道题目,因为很相似所以放在一起说。题目描述1从titles表获取按照title进行分组,每组个数大于等于2,给出title以及对应的数目t。用到titles表,这个表是一个新表,之前的题目没有遇到过,插入如下数据:方法select title,COUNT(title) as t from titles group by title having COUNT(title) >=2题目再解读:要按照title字段分组并计数,结果要筛选出组数.原创 2020-12-16 14:08:47 · 472 阅读 · 0 评论 -
SQL今日一题(6):count
这是SQL今日一题的第6篇题目描述查找薪水变动超过15次的员工号emp_no以及其对应的变动次数t最后要得到这样一个表答案selectemp_no,count(*)astfromsalariesgroupbyemp_nohavingcount(*)>151、统计薪水变动次数,只要统计emp_no在salaries表里出现了多少次,就是其薪水变动了多少次,因此用count聚合函数统计次数,并命名为t2、group by按照em...原创 2020-06-23 20:16:10 · 196 阅读 · 0 评论 -
SQL今日一题(11):窗口函数
这是SQL今日一题的第11篇文章题目描述获取所有部门中当前(dept_emp.to_date = '9999-01-01')员工当前(salaries.to_date='9999-01-01')薪水最高的相关信息,给出dept_no, emp_no以及其对应的salary这题用到dept_emp表和salaries表,以emp_no为公共字段dept_emp表salaries表方法1selectd.dept_no,d.emp_no,max(s.salary)as...原创 2020-12-16 11:16:52 · 187 阅读 · 0 评论 -
SQL每日一题(10)
这是SQL今日一题的第10篇文章题目描述获取所有员工当前的(dept_manager.to_date='9999-01-01')manager,如果员工是manager的话不显示(也就是如果当前的manager是自己的话结果不显示)。输出结果第一列给出当前员工的emp_no,第二列给出其manager对应的emp_no。用到dept_emp表和dept_manager表,两个表以dept_no为公共字段dept_emp表dept_manager表方法selectd..原创 2020-10-25 20:37:50 · 271 阅读 · 0 评论 -
SQL今日一题(9)
这是SQL今日一题的第9篇文章题目描述获取所有非manager的员工emp_no这里用到employees表和dept_manager表,两个表以emp_no为公共字段,按照题目要求插入了如下数据:employees表dept_manager表方法1selecte.emp_nofromemployeesewheree.emp_nonotin(selectemp_nofromdept_manager)1、题目要求非manager员工的e...原创 2020-07-28 15:39:10 · 124 阅读 · 0 评论 -
SQL今日一题(7):去重
这是SQL今日一题的第7篇文章题目描述找出所有员工当前(to_date='9999-01-01')具体的薪水salary情况,对于相同的薪水只显示一次,并按照逆序显示。(只输出salary)这题用到salaries表方法1selectdistinctsalaryfromsalarieswhereto_date='9999-01-01'orderbysalarydesc1、这道题就简单许多了,首先我们知道salaries表里一个员工编号可能对...原创 2020-06-29 22:19:36 · 223 阅读 · 0 评论 -
SQL今日一题(8)
这是SQL今日一题的第8篇文章题目描述获取所有部门当前(dept_manager.to_date='9999-01-01')manager的当前(salaries.to_date='9999-01-01')薪水情况,给出dept_no, emp_no以及salary(请注意,同一个人可能有多条薪水情况记录)用到dept_manager表和salaries表,两表以emp_no为公共字段方法selectd.dept_no,d.emp_no,s.salaryfr...原创 2020-07-20 21:29:06 · 119 阅读 · 0 评论 -
SQL今日一题(5):一题多解
这是SQL今日一题的第5篇题目描述查找所有员工入职时候的薪水情况,给出emp_no以及salary, 并按照emp_no进行逆序(请注意,一个员工可能有多次涨薪的情况)这题要用到employees表和salaries表,两个表以emp_no为公共字段。方法1#左连接(也可以换成innerjoin)selecte.emp_no,s.salaryfromemployeeseleftjoinsalariessone.emp_no=s.e...原创 2020-06-22 20:57:24 · 265 阅读 · 0 评论 -
SQL今日一题(4):表连接
这是SQL今日一题的第4篇题目描述查找所有已经分配部门的员工的last_name和first_name以及dept_no(请注意输出描述里各个列的前后顺序)这道题用到employees表和dept_emp表,这两个表以emp_no为公共字段。思路要用表连接来做,注意题目描述,是已经分配部门的员工的信息,应使用内连接,如果使用外连接的话,那么就应该以dept_emp为主表去连接employees表。思路1:where连接思路2:内连接思路3:左连接答案...原创 2020-06-18 21:07:53 · 200 阅读 · 0 评论 -
学习SQL:MySQL必知必会
《MySQL必知必会》这本书是2009年出版,从SQL语句的数据检索、子查询、联结、正则表达式等内容讲起,适用于没有学过SQL以及刚开始接触SQL的人,书本身比较简洁,就是在讲基础,想要更加深入地学习的话,推荐《深入浅出MySQL》,这本书就厚很多,也更适合数据库开发、优化和维护人员去学习。SQL是一种结构化查询语言,是通用地使用关系型数据库的应用语言。这句话给了我们两个关键词,SQL和数据库。在了解什么是SQL语句前,首先要知道什么是数据库,数据库顾名思义,就是存储数据的库,而SQL.原创 2020-06-09 21:00:44 · 533 阅读 · 0 评论 -
SQL今日一题(3):内连接
这是SQL隔日一题的第3篇文章题目描述查找各个部门当前(dept_manager.to_date='9999-01-01')领导当前(salaries.to_date='9999-01-01')薪水详情以及其对应部门编号dept_no(注:请以salaries表为主表进行查询,输出结果以salaries.emp_no升序排序,并且请注意输出结果,dept_no列是最后一列)这题用到了和之前employees表不同的salaries表和dept_manager表,这两个表都有emp_no这.原创 2020-06-16 20:24:14 · 297 阅读 · 0 评论 -
SQL每日一题(2)
这是SQL每日一题的第二篇文章题目描述查找入职员工时间排名倒数第三的员工所有信息,为了减轻入门难度,目前所有的数据里员工入职的日期都不是同一天所用到的表还是之前的employees表CREATETABLE`employees`(`emp_no`int(11)NOTNULL,--'员工编号'`birth_date`dateNOTNULL,`first_name`varchar(14)NOTNULL,`last_name`varchar(16...原创 2020-06-13 15:35:34 · 241 阅读 · 0 评论 -
SQL每日一题
写在前面SQL每日一题是用牛客网的sqlite库的题目进行深度讲解(感觉进度慢的小伙伴可以自行前往刷题),这个系列要开启日更计划,每日一题,一起进步学习。题目描述查找最晚入职员工的所有信息,为了减轻入门难度,目前所有的数据里员工入职的日期都不是同一天这个题目所用到的employees表的实例如下:CREATETABLE`employees`(`emp_no`int(11)NOTNULL,--'员工编号'`birth_date`dateNOT...原创 2020-06-10 19:58:01 · 669 阅读 · 1 评论