代码拉取完成,页面将自动刷新
# $1841. 联赛信息统计
# https://leetcode.cn/problems/league-statistics/
# SQL架构
Create table If Not Exists Teams (team_id int, team_name varchar(20));
Create table If Not Exists Matches (home_team_id int, away_team_id int, home_team_goals int, away_team_goals int);
Truncate table Teams;
insert into Teams (team_id, team_name) values ('1', 'Ajax');
insert into Teams (team_id, team_name) values ('4', 'Dortmund');
insert into Teams (team_id, team_name) values ('6', 'Arsenal');
Truncate table Matches;
insert into Matches (home_team_id, away_team_id, home_team_goals, away_team_goals) values ('1', '4', '0', '1');
insert into Matches (home_team_id, away_team_id, home_team_goals, away_team_goals) values ('1', '6', '3', '3');
insert into Matches (home_team_id, away_team_id, home_team_goals, away_team_goals) values ('4', '1', '5', '2');
insert into Matches (home_team_id, away_team_id, home_team_goals, away_team_goals) values ('6', '1', '0', '0');
# Write your MySQL query statement below
select
distinct team_name,
count(*) as matches_played,
sum(
case
when (
team_id = home_team_id
and home_team_goals > away_team_goals
)
or (
team_id = away_team_id
and home_team_goals < away_team_goals
) then 3
when (
team_id = home_team_id
and home_team_goals < away_team_goals
)
or (
team_id = away_team_id
and home_team_goals > away_team_goals
) then 0
else 1
end
) as points,
sum(
if(
team_id = home_team_id,
home_team_goals,
away_team_goals
)
) as goal_for,
sum(
if(
team_id = home_team_id,
away_team_goals,
home_team_goals
)
) as goal_against,
sum(
if(
team_id = home_team_id,
home_team_goals,
away_team_goals
)
) - sum(
if(
team_id = home_team_id,
away_team_goals,
home_team_goals
)
) as goal_diff
from
Teams
join Matches on team_id = home_team_id
or team_id = away_team_id
group by
team_name,
team_id
order by
points desc,
goal_diff desc,
team_name;
# clean-up
drop table Teams;
drop table Matches;
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。