このクエリを解決できないようです。サブクエリが必要だと確信していますが、選択肢がありません。私の脳はこれか何かを処理できません。私は助けが必要です :)
少し紹介
私は賭けオッズのウェブサイトを持っています。15 分ごとに、さまざまなブックメーカーから特定のイベントの最新のオッズ (勝ち/引き分け/負け、または 1/X/2) をインポートします。
オッズ テーブルのすべての行にはodds_type
('1'、'X' または '2') があり、odds_index
これは実際のオッズであり、bookmaker_id
とevent_id
です。
しかし、同様に重要なのは、最新のインポートcreated_at
からのオッズで作業する必要があるためです。明白な理由から非常に重要です。
シナリオ
以下の表では、event_id
#1 のインポートされたオッズを使用しています。
必要なクエリ
- = 1のインポートされたオッズの最新セットを
event_id
すべてのブックメーカーから分離します (この例では 9 レコード)。 - そのセットで、'1'、'X'、'2' の最大
odds_index
レコードを返します。odds_type
今は Rails のスコーピングでこれを行う方が好きなので、@event.best_odds1
andを使用できます@event.best_odds2
が、それが機能する場合は任意のアプローチをとります。これで5日間頭を悩ませてきました。それを解決する必要があります。
結果
クエリの後、3 つのレコードが得られるので、「イベント #1 の最高のオッズ」を表示できます。
テーブル
ブックメーカー
ID | NAME
----------------------
1 | Unibet
2 | 888
3 | Ladbrokes
イベント
ID | NAME
--------------------------
1 | Holland vs Denmark
2 | England vs Germany
3 | France vs Spain
オッズ
ID | OT | OI | BI | EI | CREATED_AT
---------------------------------------------------
(first import from the bookies)
1 | '1' | 2.4 | 1 | 1 | 2010-06-10 15:00
2 | 'X' | 1.5 | 1 | 1 | 2010-06-10 15:00
3 | '2' | 6.2 | 1 | 1 | 2010-06-10 15:00
4 | '1' | 2.2 | 2 | 1 | 2010-06-10 15:58
5 | 'X' | 1.8 | 2 | 1 | 2010-06-10 15:58
6 | '2' | 5.2 | 2 | 1 | 2010-06-10 15:58
7 | '1' | 2.8 | 3 | 1 | 2010-06-10 16:56
8 | 'X' | 1.3 | 3 | 1 | 2010-06-10 16:56
9 | '2' | 7.1 | 3 | 1 | 2010-06-10 16:56
(last import from the bookies)
10 | '1' | 2.5 | 1 | 1 | 2010-06-11 17:10
11 | 'X' | 1.3 | 1 | 1 | 2010-06-11 17:10
12 | '2' | 6.4 | 1 | 1 | 2010-06-11 17:10
13 | '1' | 2.1 | 2 | 1 | 2010-06-11 18.12
14 | 'X' | 1.2 | 2 | 1 | 2010-06-11 18:58
15 | '2' | 6.2 | 2 | 1 | 2010-06-11 18:58
16 | '1' | 1.8 | 3 | 1 | 2010-06-12 14:56
17 | 'X' | 2.3 | 3 | 1 | 2010-06-12 14:56
18 | '2' | 5.1 | 3 | 1 | 2010-06-12 14:56
画面に収まるように短縮された列名
OT = odds_type
OI = odds_index
BI = bookmaker_id
EI = event_id