sql刷题

在力扣平台上,作者逐步刷题提升SQL技能,从基础的不等于操作和处理NULL,到涉及distinct和自连接的复杂问题,如寻找用户推荐人、订单最多的客户及连续空余座位的查询。通过这样的练习,作者计划进一步挑战关于销售员的题目。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

刷的是力扣的热门,从简单开始刷

题库 - 力扣 (LeetCode) 全球极客挚爱的技术成长平台

 

# Write your MySQL query statement below
select name,bonus
from Employee e
left join Bonus b on e.empId=b.empId
where b.bonus<1000 or b.bonus is null
# where ifnull(b.bonus,0)<1000

584. 寻找用户推荐人:力扣

# Write your MySQL query statement below
select name
from customer
where ifnull(referee_id,0) <>2

这道题的考察点在于,sql里面的不等于,不包含null。

586. 订单最多的客户

力扣

select customer_number
from Orders
group by customer_number
order by count(customer_number)  desc
limit 1

597. 好友申请 I:总体通过率

# Write your MySQL query statement below
select 
round(
    ifnull(
        (select count(*) from(select distinct requester_id,accepter_id from requestaccepted) A)
        /
        (select count(*) from(select distinct sender_id,send_to_id from Friendrequest) B)
         ,0
    )
    ,2

    ) accept_rate

这道题有点难啊,但其实考察的点就是distinct

603. 连续空余座位

# Write your MySQL query statement below
select distinct c1.seat_id
from cinema c1 join cinema c2
on abs(c1.seat_id-c2.seat_id)=1 and c1.free=1 and c2.free=1 
order by c1.seat_id

用了自连接,注意:将两个表连接的结果是这两个表的 笛卡尔乘积 。

下一次从销售员开始做力扣

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值