mysql select和MAX()

时间:2012-07-09 05:47:01

标签: mysql max

我已经疯了,不知道还能尝试什么。 我得到了这些数据:

表名为erste

valuta  kupovni    
EUR     7.435   
GBP     9.2132  

然后我试试这个:

SELECT valuta, MAX(kupovni)
FROM erste

我明白了:

valuta  MAX(kupovni)
 EUR    9.213199615478516

我想得到:

GBP 9.2132

列valuta为varchar(3)kupovnifloat (10)。 我真的不知道我做错了什么。 当我尝试:

SELECT valuta, MAX(kupovni)
FROM erste
GROUP BY kupovni

它做得对吗?

4 个答案:

答案 0 :(得分:4)

这似乎只是选择kupovni字段值最高的行。

你可以这样做:

SELECT valuta, kupovni
FROM erste
ORDER BY kupovni DESC
LIMIT 1

答案 1 :(得分:1)

你非常接近!这就是你需要的:

SELECT valuta, MAX(kupovni)
FROM erste
where valuta = 'GBP' -- optional where clause
group by valuta

你必须"分组"所有列均未按aggregate function汇总。

除非您确实需要输出中的valuta,因为您知道valuta,我会这样做:

SELECT MAX(kupovni)
FROM erste
where valuta = 'GBP'

(请注意,mysql允许从组中省略列,在这种情况下,您将获得每个组唯一遇到的第一行行)

答案 2 :(得分:1)

试试这个:

SELECT valuta, TRUNCATE(MAX(kupovni),4)
FROM erste
group by valuta

答案 3 :(得分:0)

SELECT erste.* 
  FROM ( SELECT valuta, MAX(kupovni) AS maxtotal
           FROM erste
           GROUP BY valuta) AS dt
INNER JOIN erste
    ON erste.valuta= dt.valuta
   AND erste.kupovni= dt.maxtotal 
ORDER BY items_purchased.val DESC LIMIT 1