SQL查询以创建已播放比赛的报告
最近我被问到一个下面的SQL查询问题?有人能帮我做这个吗。我有一张三栏的桌子——主队、客队和胜利者队。如下所示SQL查询以创建已播放比赛的报告,sql,Sql,最近我被问到一个下面的SQL查询问题?有人能帮我做这个吗。我有一张三栏的桌子——主队、客队和胜利者队。如下所示 H_T A_T W_T AUS IND IND ENG AUS ENG IND AUS AUS AUS ENG AUS ENG IND IND IND ENG IND 需要在SQL中转换上述数据,以显示具有以下属性的报表 球队名称,比赛总数,赢数,平数,输数,分数 为了计算积分,这些是每种赢/平/亏的公式 赢=赢数*3 抽签=抽签计数*1 损失=损失计数*
H_T A_T W_T
AUS IND IND
ENG AUS ENG
IND AUS AUS
AUS ENG AUS
ENG IND IND
IND ENG IND
需要在SQL中转换上述数据,以显示具有以下属性的报表
球队名称,比赛总数,赢数,平数,输数,分数
为了计算积分,这些是每种赢/平/亏的公式
赢=赢数*3
抽签=抽签计数*1
损失=损失计数*0
这一点将用上述三个值进行总结
提前感谢需要更多关于什么定义绘图的信息,这假设w_t列包含值绘图,而不是团队 无论哪种方式,都可以使用条件聚合来获得所需的结果。通常情况下,您会有一个teams表并将其联接到该表中,但您可以使用union和子查询创建该表:
select t.*,
(win_count * 3) + (draw_count) as Points
from (
select t.team,
count(*) Total_Matches_Played,
count(case when t.team = y.w_t then 1 end) Win_Count,
count(case when t.team <> y.w_t then 1 end) Loss_Count,
count(case when y.w_t = 'DRAW' then 1 end) Draw_Count
from (
select h_t as team from yourtable
union select a_t from yourtable
) t join yourtable y on t.team in (y.a_t,y.h_t)
group by t.team
) t
需要更多关于什么定义绘图的信息,这假设w_t列包含值绘图,而不是团队 无论哪种方式,都可以使用条件聚合来获得所需的结果。通常情况下,您会有一个teams表并将其联接到该表中,但您可以使用union和子查询创建该表:
select t.*,
(win_count * 3) + (draw_count) as Points
from (
select t.team,
count(*) Total_Matches_Played,
count(case when t.team = y.w_t then 1 end) Win_Count,
count(case when t.team <> y.w_t then 1 end) Loss_Count,
count(case when y.w_t = 'DRAW' then 1 end) Draw_Count
from (
select h_t as team from yourtable
union select a_t from yourtable
) t join yourtable y on t.team in (y.a_t,y.h_t)
group by t.team
) t
什么决定平局?您正在使用哪个数据库?添加预期结果。并向我们展示您当前的查询尝试。您可以使用group by和sum等聚合函数进行查询。另外,您使用的是哪种db提供程序?什么决定绘图?您正在使用哪个数据库?添加预期结果。并向我们展示您当前的查询尝试。您可以使用group by和sum等聚合函数进行查询。另外,您使用的是哪种db提供程序?请注意,ANSI SQL需要t.*而不是选择列表中的*。*必须是单独的。请注意,ANSI SQL在选择列表中需要t*,而不是*。*一定是一个人。