0

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

Player(playerid, name, playsfor):包含每个球员和他效力的球队的详细信息。Playsfor 在 Team 表中引用 teamid。

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

Playerbat(playerid, matchid, runsscored,teamid):包含球员在每场比赛中的得分。仅当玩家在比赛中上场时才会为该玩家排一排。

Playerbowl(playerid, matchid, wicketstaken,teamid):包含球员在每场比赛中的三柱门。仅当玩家在比赛中上场时才会为该玩家排一排。

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

通过使用上面的表格,编写一条 SQL 语句来查找每场比赛的每支至少参加过一场比赛的球队的总得分。

注意 1:要在结果或输出中显示的列应该是 matchid 和 Runs only。

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

4

1 回答 1

0

我根据 Note1 和 Note2 做了几个假设。

注意 1:您声明您只需要 matchid 和 Runs 列,但描述中说的是每个团队的得分,因此您还需要在输出中包含团队,所以我的答案包含 matchid、teamname、Runs 作为输出。

注意 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
于 2013-03-27T10:31:57.513 回答