双非二本找实习前的准备day9

学习目标:

每天2-3到简单sql(刷完即止),每天复习代码随想录上的题目2-3道算法(时间充足可以继续),背诵的八股的问题也在这里记录了

今日碎碎念:

1)转赛道了,跑测开去,这几天没更新是因为在加急学测试的内容,真的是肝吐了要,但是也拿到了几个offer,然后有家杭州的中厂还没发,希望可以oc啦

2)转赛道的原因:卡学局,怎么投都没人要QAQ,别说实力有多强,不是高学历开头打招呼,连被“已读”的机会都没有

3)今天刚过科三,这几天休息都不是很好,就只写一下sql题好了,明天开始正常打卡


力扣刷题

SQL

力扣619:619. 只出现一次的最大数字

解答思路:

        1)整体来说比较简单,找出只出现一次的,然后求最大即可

select max(num) as num
    from (
        select num
            from MyNumbers
            group by num
            having count(*) = 1
    )as t

 力扣1045:1045. 买下所有产品的客户

解答思路:

        1)本题我也是先考虑了左链接,但是发现写出来有几个用例过不了

        2)后面读了题目,有重复数据

        3)我们先去除重复购买的数据,然后拿剩下的数据和Product表里面的数据条数进行比较即可

# 
select Customer.customer_id
    from Customer
    group by customer_id
    having count(distinct product_key) 
            = 
            (select count(distinct product_key) from Product)

力扣1731:1731. 每位经理的下属员工数量

解答思路:

        1)这块思路上其实不难,但是我有个地方疏漏了,round后面没指定小数位数导致超时

        2)这里需要对A.emoloyee_id进行分组,如果没有分组,那么展现出来的结果,如果reports_to为空的情况下,会展现出一行null数据,而要求的应该是不输出


select 
        A.employee_id,
        A.name,
        count(A.employee_id) as reports_count,
        round(avg(B.age),0) as average_age 
    FROM Employees as A inner join Employees as B
    on A.employee_id = B.reports_to
    group by A.employee_id
    order by A.employee_id

力扣1978:1978. 上级经理已离职的公司员工

解答思路:

        1)这块思路上其实不难

# 查找这些员工的id,他们的薪水严格少于$30000 并且他们的上级经理已离职
select a.employee_id
    from(
        select employee_id,manager_id,salary
            from Employees
            where manager_id is not null and salary < 30000
        )a
    where a.manager_id not in (
        select distinct employee_id from Employees
    ) 
    order by employee_id


八股

复习之前的计网的八股

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值