1841. 联赛信息统计 1811. 寻找面试候选人 1809. 没有广告的剧集 1821. 寻找今年具有正收入的客户 1831. 每天的最大交易

博客围绕MySQL面试相关问题展开,包含联赛信息统计、寻找面试候选人、没有广告的剧集、寻找正收入客户以及每天最大交易等题目,涉及足球比赛积分、连续数据处理、行转列等内容。

1841. 联赛信息统计[足球比赛积分问题]


在这里插入图片描述
在这里插入图片描述

# Write your MySQL query statement below
select team_name, count(*) matches_played ,sum(yingle*3+pingle) points,
       sum(goal) goal_for ,sum(dis_goal) goal_against,
       sum(goal-dis_goal) goal_diff
from(
select home_team_id id,
#算积分
sum(if(home_team_goals > away_team_goals,1,0)) yingle,
sum(if(home_team_goals < away_team_goals,1,0)) shule,
sum(if(home_team_goals = away_team_goals,1,0)) pingle,
#算进球失球数
sum(home_team_goals) goal,
sum(away_team_goals) dis_goal
from matches group by home_team_id ,away_team_id
union all
select away_team_id id,
       sum(if(home_team_goals < away_team_goals,1,0)) yingle,
       sum(if(home_team_goals > away_team_goals,1,0)) shule,
       sum(if(home_team_goals = away_team_goals,1,0)) pingle,
       sum(away_team_goals) goal,
       sum(home_team_goals) dis_goal
from matches group by away_team_id , home_team_id)new_table,teams T
where T.team_id = new_table.id
group by id
order by points desc, goal_diff desc ,team_name 

在这里插入图片描述

1811. 寻找面试候选人(求连续+行转列)


在这里插入图片描述
在这里插入图片描述

# Write your MySQL query statement below
with new_table as(
    select contest_id ,gold_medal id from Contests
    union all
    select contest_id ,silver_medal from Contests
    union all
    select contest_id ,bronze_medal from Contests

)
select name,mail
from Users
where user_id in(
select id
from(
select *,
       contest_id - rank()over(partition by id order by contest_id) paiming
from new_table)new_new_table
group by id ,paiming
having count(*) > 2

union

select gold_medal
from Contests
group by gold_medal
having count(*)> 2
)


1809. 没有广告的剧集


在这里插入图片描述
在这里插入图片描述

# Write your MySQL query statement below
select
    distinct session_id
from
    Playback p left join Ads a
on
    p.customer_id = a.customer_id and a.timestamp between p.start_time and p.end_time
where
    ad_id is null;

1821. 寻找今年具有正收入的客户


在这里插入图片描述

select customer_id
from Customers
where year = '2021' and revenue >0

1831. 每天的最大交易


在这里插入图片描述

# Write your MySQL query statement below
select transaction_id
from (
select transaction_id,
       rank()over(partition by date_format(day,'%Y-%m-%d') order by amount desc) paiming
from   Transactions)new_table
where paiming = 1
order by transaction_id asc

评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值