首先,我有一个基于体育博彩的数据库。我有一张名为“MATCHES”的表(id_match/sport_id/League_id/team/对手/结果)。
我正在使用的查询如下:
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 |
当我试图找出哪个联赛更有利时,问题就出现了。
如果我按胜率和 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,因为他总共投注 65 美元,会得到 2*50=100 美元,因此他将从该联赛中获得 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_having_predictions)-times_bet DESC
关于mysql - 比较值,对它们进行排序并确定哪个更有利,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56436668/