题目一:查找每个员工花费的总时间
题目要求:
计算每位员工每天在办公室花费的总时间(以分钟为单位)。 请注意,在一天之内,同一员工是可以多次进入和离开办公室的。 在办公室里一次进出所花费的时间为out_time 减去 in_time。
返回结果表单的顺序无要求。
表结构:
运行结果示例:
思路:
本题考察了group by分组统计的使用,其实只要能够想到group by,那么无论是任何思路都很容易就能做出这道题。这里给出一个思路是用sum()函数,分组统计每天每人的进程时间差的和(注意sum()函数和count()函数的区分!!)。
运行代码示例:
select event_day as day,emp_id,sum(out_time - in_time) as total_time
from Employees
group by event_day,emp_id
题目二:每天的领导和合伙人
题目要求:
对于每一个
date_id
和make_name
,找出 不同 的lead_id
以及 不同 的partner_id
的数量。按 任意顺序 返回结果表。
表结构:
运行结果示例:
思路:
本题和上题有异曲同工之妙(甚至可以说是一摸一样),除了多字段group by分组统计的考察之外,还额外考察了count()函数的用法以及去重操作。事实上这两题放在一起来做也可以帮助我们更好的理解sum()函数和count()函数的区别。
运行代码示例:
select date_id,make_name,count(distinct lead_id) as unique_leads,count(distinct partner_id) as unique_partners
from DailySales
group by date_id,make_name
题目三:银行账户概要II
题目要求:
编写解决方案, 报告余额高于 10000 的所有用户的名字和余额. 账户的余额等于包含该账户的所有交易的总和。
返回结果表单 无顺序要求 。
表结构:
运行结果示例:
思路:
本题依旧是考察了group by统计的使用,并在此基础上加入了连表查询和sum()函数的使用。需要额外关注的是,本题中对限定条件的判断要放在having子句中,而不是where子句,这是很多新手都会犯的错误之一。关于两者的区别我们在之前的题目中详细讲过,这里不再赘述。大家如果还是分不清,可以记住一个不太严谨的窍门:如果判断条件中有分组聚合函数就用having,没有的话大多数情况下是where。
运行代码示例:
select name,sum(amount) as balance
from Users
left join Transactions
using(account)
group by account
having balance > 10000
题目四:游戏玩法分析I
题目要求:
查询每位玩家 第一次登录平台的日期。
表结构:
运行结果示例:
思路:
这道题目是对group by统计和min()函数的考察,无论是思路还是代码实现都非常简单。
运行代码示例:
select player_id,min(event_date) as first_login
from Activity
group by player_id
完结撒花
今天的题目量不大而且都非常简单,因为今天是个特殊的日子——我们用了12天的时间,完成了力扣上的[高频SQL50题(基础版)]题单的练习以及全部免费简单难度(和二十余道中等/困难难度)的题目,并且在带练阶段,我也掺杂了部分鱼皮大佬的SQL进阶之路和牛客网上的经典SQL习题!
从明天开始,我们就要进阶中等难度及以上的题目以及笔、面真题啦!
基础阶段练习汇总
(一)理论学习&基础巩固阶段
【SQL】MySQL的链接查询相关基础操作练习-CSDN博客
【SQL】SQL语法总结(一):通用语法&查询操作&表连接操作-CSDN博客
【SQL】SQL语法总结(二):聚合函数、常用函数、复杂查询、视图-CSDN博客
(二)理论实践阶段(含牛客网和鱼皮大佬SQL进阶之路习题)
【SQL】牛客刷题笔记:SQL246~SQL254-CSDN博客
【SQL】一张学生表带你搞懂SQL中的链接查询-CSDN博客
【SQL】超全!以练代学,练完这篇,搞定MySQL语句!(基础篇)-CSDN博客
【SQL】超全!以练代学,练完这篇,搞定MySQL语句!(进阶篇)-CSDN博客
(三)力扣高频SQL50题带练
【SQL高频练习带刷】day4:聚合查询补充习题-CSDN博客
【SQL高频练习带刷】day8:高级字符串函数 / 正则表达式 / 子句-CSDN博客
(四)力扣简单难度题目带练
【SQL每日一练】day1 leetcode高频习题练习-CSDN博客
【SQL每日一练】day2:leetcode高频习题练习-CSDN博客
【SQL每日一练】day3:leetcode高频习题练习-CSDN博客
【SQL每日一练】day4:leetcode高频习题练习(基础部分完结篇)-CSDN博客
(五)力扣中等困难难度题目带练
【SQL每日一练】day5:leetcode高频习题练习-CSDN博客
【SQL每日一练】day6:leetcode高频习题练习-CSDN博客
【SQL每日一练】day7:leetcode高频习题练习(力扣完结篇)-CSDN博客