zoukankan      html  css  js  c++  java
  • sqlzoo练习系列(十)——合并表格之足球赛数据库

     【Tips】

    • sqlzoo官网链接:https://sqlzoo.net/wiki/SQL_Tutorial/zh
    • 每个系列开头介绍所用表及其信息
    • 每道题均测试通过,含有题目描述、代码和结果
    • 题目为自己简写,最好在官网查看具体题目
    • 部分测试结果不完整,仅为一部分截图

    合并表格之足球赛数据库练习链接:https://sqlzoo.net/wiki/The_JOIN_operation/zh

    所用的表game,goal,eteam

            


      

    1.列出球员姓氏为'Bender'的入球数据

    SELECT matchid,player FROM goal 
    WHERE teamid='GER'

    2.查询1012相关

    SELECT  id,stadium,team1,team2
    FROM game
    WHERE id=1012

    3.显示每一个德国入球的球员名,队伍名,场馆和日期

    SELECT goal.player,goal.teamid,game.stadium,game.mdate
    FROM game JOIN goal ON (id=matchid)
    WHERE teamid='GER'

    4.列出球员名字Mario相关

    SELECT team1,team2,player
    FROM game JOIN goal ON (id=matchid)
    WHERE player LIKE 'Mario%'

    5.列出每场球赛中首10分钟有入球的相关信息

    SELECT player, teamid, coach,gtime
    FROM goal JOIN eteam on teamid=id
    WHERE gtime<=10

    6.列出'Fernando Santos'相关

    SELECT mdate,teamname
    FROM game JOIN eteam ON (team1=eteam.id)
    WHERE coach='Fernando Santos'

    7.列出场馆 'National Stadium, Warsaw的入球球员

    SELECT player
    FROM goal JOIN game ON id=matchid
    WHERE stadium='National Stadium, Warsaw'

    8.找出非德国球员的入球

    SELECT DISTINCT player FROM game JOIN goal
    ON id=matchid
    WHERE (team1='GER' OR team2='GER')
    AND goal.teamid != 'GER'

    9.列出队伍名称和该队的入球总数

    SELECT teamname,COUNT(player)
    FROM eteam JOIN goal ON id=teamid
    GROUP BY teamname

    10.列出场馆名和该场馆的入球数字

    SELECT stadium,COUNT(player)
    FROM game JOIN goal ON id=matchid
    GROUP BY stadium

    11.找出'POL'相关

    SELECT matchid,mdate,COUNT(player)
    FROM game JOIN goal ON matchid = id 
    WHERE (team1 = 'POL' OR team2 = 'POL')
    GROUP BY matchid,mdate

    12.列出德国'GER'相关

    SELECT matchid,mdate,COUNT(player)
    FROM game JOIN goal ON id=matchid
    WHERE (team1='GER' OR team2='GER')
    AND teamid='GER'
    GROUP BY matchid,mdate

    13.列出不同队伍的总得分情况

    SELECT mdate,
    team1,
    SUM(CASE WHEN teamid=team1 THEN 1 ELSE 0 END) AS score1,
    team2,
    SUM(CASE WHEN teamid=team2 THEN 1 ELSE 0 END) AS score2
    FROM game LEFT JOIN goal ON matchid = id
    GROUP BY mdate,matchid,team1,team2

  • 相关阅读:
    LeetCode 83. Remove Duplicates from Sorted List (从有序链表中去除重复项)
    LeetCode 21. Merge Two Sorted Lists (合并两个有序链表)
    LeetCode 720. Longest Word in Dictionary (字典里最长的单词)
    LeetCode 690. Employee Importance (职员的重要值)
    LeetCode 645. Set Mismatch (集合不匹配)
    LeetCode 500. Keyboard Row (键盘行)
    LeetCode 463. Island Perimeter (岛的周长)
    115.Distinct Subsequences
    55.Jump Game
    124.Binary Tree Maximum Path Sum
  • 原文地址:https://www.cnblogs.com/tuzinn/p/13879979.html
Copyright © 2011-2022 走看看