2010-07-15 74 views
0

我试图解决一个SQL问题,但没有成功,我认为你可以给我一个很好的答案。SQL查询获得赔率最高的博彩公司

我的表看起来像这样:

 
league_id|style|bookmaker|hometeam|awayteam|odd1|oddX|odd2| 
----------------------------------------------------------- 
premier |1X2 |bet365 |arsenal |chelsea |2.50|3.20|2.30| 
----------------------------------------------------------- 
premier |1X2 |unibet |arsenal |chelsea |2.40|3.00|2.00| 
----------------------------------------------------------- 
premier |1X2 |ladbrokes|arsenal |chelsea |2.60|3.20|2.10| 
----------------------------------------------------------- 
premier |1X2 |bet24 |arsenal |chelsea |2.30|3.40|2.10| 
----------------------------------------------------------- 

odd1 =主队取胜,odd2 =客队取胜,oddX =画

DESIRABLE OUTPUT:

 
Premier League Odds: 

team |AVERAGE|BEST|BEST ODDS BOOKMAKER| 
----------------------------------------- 
arsenal | 2.45 |2.60| ladbrokes   | 
-----------------------------------------  
chelsea | 3.20 |3.40| bet24    | 
-----------------------------------------  
Draw | 2.12 |2.30| bet365    | 
-----------------------------------------  

可以在这里看到一个生动的例子:http://www.wsn.com/football/football-odds/

非常感谢。

+1

请问您可以添加一些呃领域知识,也就是说,如何从“奇数1/2/X”值计算每支球队的胜率和平局的赔率?并不是每个人都去过一家赌场。 – chryss 2010-07-15 09:30:30

+0

odd1 =主队获胜, odd2 =客队获胜, oddX =抽签 – Ilias 2010-07-15 09:50:04

回答

3

根据您的SQL方言,使用沿着这些路线的子查询可能是你在找什么,万一我正确地理解这些数字的含义:

SELECT 
    tt.hometeam as team, 
    avg(tt.odd1) as average, 
    max(tt.odd1) as best, 
    tt.bookmaker as best_odds_bookmaker 
FROM 
    2_team_table tt 
INNER JOIN 
    (
     SELECT 
      bookmaker as maxbookie 
     FROM 
      2_team_table 
     ORDER BY 
      odd1 desc 
     LIMIT 1 
    ) as a 
    ON tt.bookmaker = a.maxbookie 
UNION ALL 
    ..... (same thing with awayteam and odd2) 
UNION ALL 
    ..... (same thing setting the first col to "Draw" and using oddX) 

但真正你在一些脚本语言中做这样的事情要好得多,如果你的表只包含两个团队,一个事件,这是非常不现实的,它只会这样工作。