2010-07-15 71 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) 

但真正你在一些腳本語言中做這樣的事情要好得多,如果你的表只包含兩個團隊,一個事件,這是非常不現實的,它只會這樣工作。