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 损失=损失计数*

最近我被问到一个下面的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

损失=损失计数*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*,而不是*。*一定是一个人。