【SQL每日一练】day4:leetcode高频习题练习(基础部分完结篇)

题目一:查找每个员工花费的总时间

题目要求:

计算每位员工每天在办公室花费的总时间(以分钟为单位)。 请注意,在一天之内,同一员工是可以多次进入和离开办公室的。 在办公室里一次进出所花费的时间为out_time 减去 in_time。

返回结果表单的顺序无要求。

1741. 查找每个员工花费的总时间 - 力扣(LeetCode)

表结构:

 运行结果示例:

思路:

        本题考察了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 的数量。

按 任意顺序 返回结果表。

1693. 每天的领导和合伙人 - 力扣(LeetCode)

表结构:

 运行结果示例:

思路:

        本题和上题有异曲同工之妙(甚至可以说是一摸一样),除了多字段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 的所有用户的名字和余额. 账户的余额等于包含该账户的所有交易的总和。

返回结果表单 无顺序要求 。

1587. 银行账户概要 II - 力扣(LeetCode)

表结构:

 运行结果示例:

思路:

        本题依旧是考察了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

题目要求:

查询每位玩家 第一次登录平台的日期

511. 游戏玩法分析 I - 力扣(LeetCode)

表结构:

 运行结果示例:

思路:

        这道题目是对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语法总结(二):聚合函数、常用函数、复杂查询、视图-CSDN博客

(二)理论实践阶段(含牛客网和鱼皮大佬SQL进阶之路习题)

【SQL】牛客刷题笔记:SQL246~SQL254-CSDN博客

【SQL】一张学生表带你搞懂SQL中的链接查询-CSDN博客

【SQL】一张学生表带你学会开窗函数-CSDN博客

【SQL】超全!以练代学,练完这篇,搞定MySQL语句!(基础篇)-CSDN博客

【SQL】超全!以练代学,练完这篇,搞定MySQL语句!(进阶篇)-CSDN博客

(三)力扣高频SQL50题带练

【SQL高频练习带刷】day1:基础查询-CSDN博客

【SQL高频练习带刷】day2:连接查询-CSDN博客

【SQL高频练习带刷】day3:聚合查询-CSDN博客

【SQL高频练习带刷】day4:聚合查询补充习题-CSDN博客

【SQL高频练习带刷】day5:排序和分组-CSDN博客

【SQL高频练习带刷】day6:高级查询-CSDN博客

【SQL高频练习带刷】day7:子查询-CSDN博客

【SQL高频练习带刷】day8:高级字符串函数 / 正则表达式 / 子句-CSDN博客

【SQL高频练习带刷】day9:补充练习题-CSDN博客

【SQL高频练习带刷】day10:补充练习题-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博客

(六)大厂笔面真题

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值