【问题标题】:Using SQL table structure for points scoring使用 SQL 表结构进行评分
【发布时间】:2019-10-07 07:41:05
【问题描述】:

我目前正在参加梦幻足球联赛,我正在尝试使用一些统计数据为我的球队做出一些明智的决定。

目前,我有一张包含一些历史球员表现数据的表格,表格的每一行是一个球员在一场比赛中的输出,如下所示:

Player          PassingYards    PassingTDs
Tom Brady       200             5
Deshaun Watson  350             3

我的联赛有一个特定的积分计分规则,我打算将其存储在另一个表中,如下所示:

Metric          Points
PassingYards    0.04
PassingTDs      4

从上面的两个表中,我的目标是构建一个视图来计算每场比赛的得分,如下所示:

Player          Points
Tom Brady       28
Deshaun Watson  26

[其中 28 是 (200*0.04) + (5*4),26 是 (350*0.04) + (3*4)]

我的问题是,如何存储积分关税数据?我的数据显然有超过 2 个指标,所以我不想为每个指标手动输入数字。我确信有一种简单的方法可以做到这一点,但我就是无法解决。谢谢!

【问题讨论】:

    标签: sql sql-server


    【解决方案1】:

    我想你想要:

    Player          Metric          Value
    Tom Brady       PassingYards    200
    Tom Brady       PassingTDs        5
    Deshaun Watson  PassingYards    350
    Deshaun Watson  PassingTDs        3
    

    和:

    Metric          Points
    PassingYards    0.04
    PassingTDs      4
    

    然后你可以加入表格并聚合:

    select pm.player, sum(pm.value * m.points)
    from playermetrics pm join
         metrics m
         on pm.metric = m.metric
    group by pm.player;
    

    实际上,我怀疑您还想要Players 表和MetricId 表中的MetricIdmetrics。这样一来,您就不需要在不同的表格中重复字符串 - 错别字可能会影响您的结果。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-10
      相关资源
      最近更新 更多