当前位置: 首页 > 面试题库 >

SQLzoo JOIN教程#13

印子平
2023-03-14
问题内容

我一直在研究SQLzoo问题,但在JOIN教程问题#13中的最后一个问题上遇到了麻烦-如图所示,列出每个比赛以及每个团队得分的目标。

链接:http://sqlzoo.net/wiki/The_JOIN_operation

在他们给出的示例代码中,它使用了一个案例。我这样修改它:

SELECT game.mdate, game.team1,
  CASE WHEN goal.teamid=game.team1 THEN 1 ELSE 0 END score1, game.team2,
  CASE WHEN goal.teamid=game.team2 THEN 1 ELSE 0 END score2
  FROM game, goal WHERE game.id=goal.matchid
GROUP BY game.mdate, goal.matchid, game.team1, game.team2

他们建议在score1 / score2上使用SUM函数将提供答案。对于如何在SQL内创建的这两列上使用SUM函数,我感到困惑。

任何人都可以提供有关如何执行或广泛提及如何以更好的方式编写此SQL查询的提示吗?


问题答案:

好吧,您确实需要SUM这些列(这SUM是一个聚合函数,这就是为什么要在GROUP BY那儿使用)。为了更好地编写查询,您需要丢失旧的隐式JOIN样式,并使用ANSI显式样式:

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


 类似资料:
  • 原文:Pyplot tutorial matplotlib.pyplot是一个命令风格函数的集合,使matplotlib的机制更像 MATLAB。 每个绘图函数对图形进行一些更改:例如,创建图形,在图形中创建绘图区域,在绘图区域绘制一些线条,使用标签装饰绘图等。在matplotlib.pyplot中,各种状态跨函数调用保存,以便跟踪诸如当前图形和绘图区域之类的东西,并且绘图函数始终指向当前轴域(请

  • 原文:Path Tutorial 位于所有matplotlib.patch对象底层的对象是Path,它支持moveto,lineto,curveto命令的标准几个,来绘制由线段和样条组成的简单和复合轮廓。 路径由(x,y)顶点的(N,2)数组,以及路径代码的长度为 N 的数组实例化。 例如,为了绘制(0,0)到(1,1)的单位矩形,我们可以使用这个代码: import matplotlib.pyp

  • 原文:Transformations Tutorial 像任何图形包一样,matplotlib 建立在变换框架之上,以便在坐标系,用户数据坐标系,轴域坐标系,图形坐标系和显示坐标系之间轻易变换。 在 95 %的绘图中,你不需要考虑这一点,因为它发生在背后,但随着你接近自定义图形生成的极限,它有助于理解这些对象,以便可以重用 matplotlib 提供给你的现有变换,或者创建自己的变换(见matpl

  • 原文:Image tutorial 启动命令 首先,让我们启动 IPython。 它是 Python 标准提示符的最好的改进,它与 Matplotlib 配合得相当不错。 在 shell 或 IPython Notebook 上都可以启动 IPython。 随着 IPython 启动,我们现在需要连接到 GUI 事件循环。 它告诉 IPython 在哪里(以及如何显示)绘图。 要连接到 GUI 循

  • 原文:Artist tutorial matplotlib API 有三个层级。 matplotlib.backend_bases.FigureCanvas是绘制图形的区域,matplotlib.backend_bases.Renderer是知道如何在ChartCanvas上绘制的对象,而matplotlib.artist.Artist是知道如何使用渲染器在画布上画图的对象。 FigureCanv

  • Movie 网站 (类似于IMDB) 多租户系统

  • 接下来的教程讲先介绍Gradle的基础知识 Chapter 4, 安装 Gradle 描述如何安装 Gradle. Chapter 5, 脚本构建基础 介绍脚本构建的基础元素: projects 和 tasks. Chapter 6, Java 快速入门 展示如何使用 Gradle 来构建 Java 项目. Chapter 7, 依赖管理基础 展示如何使用 Gradle 的依赖管理功能. Chap

  • 链接 地面站 编写应用程序 QGC的视频流 远距离视频流 u-blox M8P RTK 光流 ecl EKF 飞行前检查 着陆检测 Linux系统下使用S.Bus驱动