我在 PostgreSQL 数据库中有这些表:
博彩公司
-----------------------
| id | name |
-----------------------
| 1 | Unibet |
-----------------------
| 2 | 888 |
-----------------------
赔率
---------------------------------------------------------------------
| id | odds_type | odds_index | bookmaker_id | created_at |
---------------------------------------------------------------------
| 1 | 1 | 1.55 | 1 | 2012-06-02 10:30 |
---------------------------------------------------------------------
| 2 | 2 | 3.22 | 2 | 2012-06-02 10:30 |
---------------------------------------------------------------------
| 3 | X | 3.00 | 1 | 2012-06-02 10:30 |
---------------------------------------------------------------------
| 4 | 2 | 1.25 | 1 | 2012-05-27 09:30 |
---------------------------------------------------------------------
| 5 | 1 | 2.30 | 2 | 2012-05-27 09:30 |
---------------------------------------------------------------------
| 6 | X | 2.00 | 2 | 2012-05-27 09:30 |
---------------------------------------------------------------------
我要查询的是以下内容:
给我来自所有博彩公司的最新更新(created_at)的 1/X/2 赔率,以及从最后一次更新中,给我每种odds_type('1'、'2'、'X')的最高赔率。
在我的网站上,我将它们显示为:
Best odds right now: 1 | X | 2
--------------------
2.30 | 3.00 | 3.22
我必须先得到最新的,因为昨天更新的赔率不再有效。然后从上次更新开始,我有 - 在这种情况下 - 来自 2 个不同博彩公司的 2 个赔率,所以我需要为类型 '1'、'2'、'X' 获得最佳赔率。
伪 SQL 类似于:
SELECT MAX(odds_index) WHERE odds_type = '1' ORDER BY created_at DESC, odds_index DESC
但这不起作用,因为我总是会得到最新的赔率(而不是最新的最高/最好的赔率)
我希望我说得通。