我面临一个非常有趣的挑战,我要么太过努力(缺少一个简单的解决方案),要么比我想出的要复杂得多……”
本质上,我有一个可以追踪分数的游戏。名为scores
的表具有以下列:
[id
(pk,ai),email
,name
,duration
,moves
一个播放器(通过电子邮件标识)可以有多行。为了确定获胜者,我们对持续时间进行气泡排序然后移动。挑战在于:我们如何获得(通过电子邮件)获奖者的唯一列表?
GROUP BY
不能正常工作,因为这是一个汇总。我们需要在持续时间和动作之间保持平衡。
这是模式和问题的示例:http://sqlfiddle.com/#!9/0b1530/2-注意相同的电子邮件是如何按预期显示的。
此示例使用GROUP BY,但是它选择了错误的数据:http://sqlfiddle.com/#!9/0b1530/3-注意[email protected]的分数是不正确的。正确的分数应该是30
,31
(分别是持续时间和移动)。 [email protected]应该显示31
,35
(分别是持续时间和移动)
然后,最后,在电子邮件列上选择不重复在这里也不起作用,例如:http://sqlfiddle.com/#!9/0b1530/4
我已经尝试了一些JOIN,但是我无法使它们正常工作,也无法保持行奇偶校验。
我面临一个非常有趣的挑战,我要么太过努力(缺少一个简单的解决方案),要么比我想像的复杂得多。 ...
我认为您想要每个玩家的分组最大持续时间,然后是每个分组的最大分数。