鱼C论坛

 找回密码
 立即注册
查看: 1678|回复: 1

MYSQL错题整理(1212. 查询球队积分)

[复制链接]
发表于 2020-4-6 14:38:17 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
题目描述:
  1. Table: Teams

  2. +---------------+----------+
  3. | Column Name   | Type     |
  4. +---------------+----------+
  5. | team_id       | int      |
  6. | team_name     | varchar  |
  7. +---------------+----------+
  8. 此表的主键是 team_id,表中的每一行都代表一支独立足球队。
  9. Table: Matches

  10. +---------------+---------+
  11. | Column Name   | Type    |
  12. +---------------+---------+
  13. | match_id      | int     |
  14. | host_team     | int     |
  15. | guest_team    | int     |
  16. | host_goals    | int     |
  17. | guest_goals   | int     |
  18. +---------------+---------+
  19. 此表的主键是 match_id,表中的每一行都代表一场已结束的比赛,比赛的主客队分别由它们自己的 id 表示,他们的进球由 host_goals 和 guest_goals 分别表示。
  20.  

  21. 积分规则如下:

  22. 赢一场得三分;
  23. 平一场得一分;
  24. 输一场不得分。
  25. 写出一条SQL语句以查询每个队的 team_id,team_name 和 num_points。结果根据 num_points 降序排序,如果有两队积分相同,那么这两队按 team_id  升序排序。

  26. 查询结果格式如下:

  27. Teams table:
  28. +-----------+--------------+
  29. | team_id   | team_name    |
  30. +-----------+--------------+
  31. | 10        | Leetcode FC  |
  32. | 20        | NewYork FC   |
  33. | 30        | Atlanta FC   |
  34. | 40        | Chicago FC   |
  35. | 50        | Toronto FC   |
  36. +-----------+--------------+

  37. Matches table:
  38. +------------+--------------+---------------+-------------+--------------+
  39. | match_id   | host_team    | guest_team    | host_goals  | guest_goals  |
  40. +------------+--------------+---------------+-------------+--------------+
  41. | 1          | 10           | 20            | 3           | 0            |
  42. | 2          | 30           | 10            | 2           | 2            |
  43. | 3          | 10           | 50            | 5           | 1            |
  44. | 4          | 20           | 30            | 1           | 0            |
  45. | 5          | 50           | 30            | 1           | 0            |
  46. +------------+--------------+---------------+-------------+--------------+

  47. Result table:
  48. +------------+--------------+---------------+
  49. | team_id    | team_name    | num_points    |
  50. +------------+--------------+---------------+
  51. | 10         | Leetcode FC  | 7             |
  52. | 20         | NewYork FC   | 3             |
  53. | 50         | Toronto FC   | 3             |
  54. | 30         | Atlanta FC   | 1             |
  55. | 40         | Chicago FC   | 0             |
  56. +------------+--------------+---------------+

  57. 来源:力扣(LeetCode)
  58. 链接:https://leetcode-cn.com/problems/team-scores-in-football-tournament
  59. 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
复制代码




参考答案:
  1. select t.team_id,t.team_name,
  2. sum(case when m1.host_num>m1.guest_num then 3 when m1.host_num=m1.guest_num then 1 else 0 end)num_points
  3. from
  4. Teams t left join
  5. (select host_team as team,host_goals as host_num,guest_goals as guest_num from Matches
  6. union all
  7. select guest_team as team,guest_goals as host_num,host_goals as guest_num from Matches)m1
  8. on t.team_id=m1.team
  9. group by t.team_id
  10. order by num_points desc,t.team_id asc
复制代码



注意事项:
1.https://www.cnblogs.com/wangyayun/p/6133540.html

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-4-6 14:40:30 | 显示全部楼层
注意mysql中union和union all 的区别
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-26 12:08

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表