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

  • 相关阅读:
    介绍一种很好用的任务调度平台
    java中的进制与操作符
    类再生(合成、继承、final)
    初始化
    重新学习Spring2——IOC和AOP原理彻底搞懂
    重新学习Spring一--Spring在web项目中的启动过程
    JDK并发包
    java并行程序基础
    MVC模式
    访问者模式
  • 原文地址:https://www.cnblogs.com/tuzinn/p/13879979.html
Copyright © 2011-2022 走看看