首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MYSQL我试图返回一个值,在这个值中,当对另一个字段分组时,需要将一个值与同一字段的最小值进行比较。

MYSQL我试图返回一个值,在这个值中,当对另一个字段分组时,需要将一个值与同一字段的最小值进行比较。
EN

Stack Overflow用户
提问于 2019-02-21 10:20:29
回答 2查看 47关注 0票数 0

基本上,我是在计算四个球在高尔夫球中的投篮数,以下是我的数据:-

代码语言:javascript
复制
DatePlayed  PlayerID    HCap    Groups  Hole01  Hole02  Hole03  Shots
----------------------------------------------------------------------    
2018-11-10  001          15       2       7        3    6   
2018-11-10  004          20       1       7        4    6   
2018-11-10  025          20       2       7        4    5   
2018-11-10  047          17       1       8        3    6   
2018-11-10  048          20       2       8        4    6   
2018-11-10  056          17       1       6        3    5   
2018-11-10  087          18       1       7        3    5   

我想通过一个额外的列检索上面的行,该列将根据组列中的值来计算,该列是参与者(Handicap -(组中的最低障碍))x .75。

我可以通过一个组来实现它,但是需要聚合所有东西,有什么方法可以像上面那样返回值吗?下面是返回值的查询:

代码语言:javascript
复制
SELECT 
    PlayerID, 
    MIN(Handicap),
    MIN(Hole01) AS Hole01,
    MIN(Hole02) AS Hole02,
    MIN(Hole03) AS Hole03,
    MIN(CourseID) AS CourseID, 
    Groups,
    ROUND(
        MIN((Handicap - 
            (SELECT MIN(Handicap) FROM Results AS t 
            WHERE DatePlayed='2018-11-10 00:00:00' AND t.Groups=Results.Groups)) *.75)) 
        AS Shots
FROM 
    Results 
WHERE 
    Results.DatePlayed='2018=11=10 00:00:00' 
GROUP BY 
    DatePlayed, Groups, PlayerID

代码语言:javascript
复制
  PlayerID MIN(Handicap)Hole01 Hole02 Hole03 CourseID Groups Shots
  -----------------------------------------------------------------     
      4        20         7       4     6       1        1    2
     47        17         8       3     6       1        1    0
     56        17         6       3     5       1        1    0
     87        18         7       3     5       1        1    1 
      1        15         7       3     6       1        2    0
     25        20         7       4     5       1        2    4
     48        20         8       4     6       1        2    4

很抱歉,任何格式化都不能让我的表在这里,任何帮助都会很感谢,我正在使用最新的mysql从ubuntu18.04

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-02-22 11:48:29

嗨,伙计们,我已经找到了解决办法,基本上,我需要在回合后立即放弃这个公式,因此它不需要一个小组。

选择 PlayerID,Handicap,Hole01,Hole02,Hole03,CourseID,组,圆形(从DatePlayed=‘2018-10: 00:00:00’和t.Groups=Results.Groups的结果中选择MIN(Handicap) ) *.75) 从… 结果 哪里 =‘2018=10 00:00:00’

票数 0
EN

Stack Overflow用户

发布于 2019-02-21 11:56:42

没有回答;太长时间不能发表评论.

首先,我很高兴我对高尔夫一无所知,所以接下来的事情可能不是最理想的,但至少它必须是朝着正确方向迈出的一步.

规范化的模式可能看起来像这样..。

代码语言:javascript
复制
rounds
round_id DatePlayed  PlayerID HCap Groups  
       1 2018-11-10         1   15      2
       2 2018-11-10         4   20      1       

round_detail 
round_id hole shots
       1    1     7 
       1    2     3
       1    3     6
       2    1     7
       2    2     4
       2    3     6
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54804656

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档