基本上,我是在计算四个球在高尔夫球中的投篮数,以下是我的数据:-
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。
我可以通过一个组来实现它,但是需要聚合所有东西,有什么方法可以像上面那样返回值吗?下面是返回值的查询:
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。
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
发布于 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’
发布于 2019-02-21 11:56:42
没有回答;太长时间不能发表评论.
首先,我很高兴我对高尔夫一无所知,所以接下来的事情可能不是最理想的,但至少它必须是朝着正确方向迈出的一步.
规范化的模式可能看起来像这样..。
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 6https://stackoverflow.com/questions/54804656
复制相似问题