MYSQL -> 获取每个“分组依据”的最高值


MYSQL -> Getting top value of each "group by"

我想在每场比赛中获得最短的赔率值 - 或者在这种情况下是最喜欢的

我的数据库看起来像这样

Racetime Odds
13:05     2
13:05     2.4
13:05     3
13:05     5
13:30     3
13:30     5
13:30     9
13:30     13.5
14:00     1.14
14:00     1.19
14:00     2
14:00     4

我试图做 SQL,所以它周围的东西

Select Odds from `tom_cards` where `Odds` < '2.5' Group by Racetime limit 1

但这只是给了我 1 个结果,因为最后是前 1 个,我不确定如何分组。我想要的结果是

Racetime Odds
13:05     2
14:00     1.14

然后我可以拉马和时间

大概需要一个聚合查询:

select racetime, min(odds)
from tom_cards
where odds < 2.5
group by racetime;

注意:将数字常量放入查询时,不需要单引号。 如果赔率被存储为字符串 - 这是一个非常非常糟糕的主意 - 那么你需要将它们转换为数字以获得最小值:

select racetime, min(odds + 0)
from tom_cards
where odds + 0 < 2.5
group by racetime;
Select min(Odds)
from `tom_cards` 
Group by Racetime
Having sum(`Odds` < 2.5) > 0

您必须在查询中进行更改。请检查这一点,如果需要任何帮助,请告诉我。

SELECT min(Odds)
FROM tom_cards 
GROUP BY Racetime
HAVING SUM(Odds < 2.5) > 0