用于查找每个匹配的SQL语句

时间:2013-03-27 05:43:55

标签: sql

这是IPL季节。以下是IPL匹配数据库关系:

Player(playerid, name, playsfor):包含每个玩家及其参赛队伍的详细信息。在Team表中播放引用teamid。

Team(teamid, teamname):包含团队ID和团队名称。

Playerbat(playerid, matchid, runsscored,teamid):包含每场比赛中球员得分的得分。只有当玩家参加比赛时,才能为玩家添加一行。

Playerbowl(playerid, matchid, wicketstaken,teamid):包含每场比赛中球员的小门。只有当玩家参加比赛时,才能为玩家添加一行。

PlayersmatchDetails (Playerid, Matchid):包含参加比赛的球员姓名。

通过使用上面的表格,编写一个SQL语句来查找每个匹配项,每个团队进行至少一场比赛的总得分。

注1:要在结果或输出中显示的列应为matchid且仅运行。

注意2:在编写SQL查询时,您需要将表名写为schemaname.tablename(例如employee.projectDetails,其中employee是schemaname,projectDetails是tablename)。

1 个答案:

答案 0 :(得分:0)

我基于Note1和Note2做了几个假设。

注意1:你声明你只想要列matchid和Runs,但描述说每个团队得分,所以你需要让团队在输出中,所以我的答案包含matchid,teamname,运行为输出。

注意2:您没有指定模式名称,所以我假设所有表都在名为schemaname的模式中。您需要使用正确的模式名称替换它。

SELECT pb.matchid, t.teamname, SUM(pb.runsscored) as Runs
FROM schemaname.Playerbat pb
INNER JOIN schemaname.Team t ON t.teamid = pb.teamid
GROUP BY pb.matchid, t.teamname
ORDER BY t.teamname, pb.matchid