首先,我有一个基于体育博彩的数据库。我有一张名为“ MATCHES”的表格(id_match / sport_id / League_id / team /竞争对手/ result)。
我正在使用的查询如下:
SELECT leagues.name,
COUNT(matches.League_id) AS times_bet,
COUNT(case when matches.result = 'W' then 1 else null end) AS times_won,
AVG (matches.result = 'W')*100 AS winrate,
nations.name as nation,
sports.name as sport
FROM matches,leagues,sports,nations
WHERE matches.League_id=leagues.id and leagues.Sport_id=sports.id and
leagues.Nation_id=nations.id
GROUP BY matches.League_id
我生成的结果是:
+---------------------------------------------------------+
| name | times_bet | times_won | winrate | nation | sport |
+---------------------------------------------------------+
| xxx | 100 | 65 | 65% | xxxxx | xxx |
| aaa | 70 | 49 | 70% | bbbbb | ccc |
| yyy | 65 | 50 | 77% | bbbbb | ccc |
| eee | 7 | 7 | 100% | ppppp | hhh |
当我尝试找出哪种联赛更有利时,问题就来了。
如果我按winrate和time_bets排序查询,则最有利的联赛将是最后一个联赛,那不是我想要的。
我想找出是否有任何方法可以将预测的数量与获胜率进行比较,从而确定哪个联赛是最有利的。
具有50个预测和80%胜率的联盟比具有5个预测和100%胜率的联盟更有利。这就是我的意思。
我将给出一个我想看到的图形示例:
+---------------------------------------------------------+
| name | times_bet | times_won | winrate | nation | sport |
+---------------------------------------------------------+
| yyy | 65 | 50 | 77% | bbbbb | ccc |
| aaa | 70 | 49 | 70% | bbbbb | ccc |
| xxx | 100 | 65 | 65% | xxxxx | xxx |
| eee | 7 | 7 | 100% | ppppp | hhh |
如果有人知道这样做的话,我将不胜感激。提前致谢
最佳答案
您所说的“更优惠”到底是什么意思?
例如,如果我们假设所有球员的赔率完全相同,那么如果一名球员在该联盟的所有投注中平均分配了他想投注的数量,那么最有利的就是获胜率最高的那个。
但是,如果玩家在每个下注中都投入固定金额,那么情况就会改变。
例如,如果我们假设在所有投注中获胜的赔率是2.00,那么您下注时每投注1美元,您赢回2美元,那么如果球员在每个联赛中每场比赛投入1美元,对他来说更有利的联赛yyy是因为他本可以拿回2 * 50 = 100美元,而总赌注为65美元,所以他将从那个联盟中获利35美元。尽管联盟eee的获胜率更高,但下注却少得多,因此他从7美元的总赌注中可以得到2 * 7 = 14美元,而总利润仅为7美元。
在该示例中,我假设获胜预测的平均下注赔率是一个固定数字,并且每个联赛都相同。显然不是这样,您应该找到每个联赛获胜预测的平均赔率,例如,如果一个联赛有三个获胜预测,赔率分别为2.00、3.00和4.00,则应取平均值(2 + 3 + 4)/ 3 = 3并使用该值。
像这样:ORDER BY (times_won*avg_odds_of_winning_predictions)-times_bet DESC
关于mysql - 比较值,对它们进行排序并确定哪个更有利,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56436668/