选择每个值mariaDB的max()

时间:2017-02-28 15:32:34

标签: sql mariadb greatest-n-per-group

我有一个看起来像这样的表:

name  price  class
a       10     x
a       20     y
a       15     z
b       40     y
b       35     z
c       5      x
c       10     y
c       15     z
c       12     w

我希望获得最高价格的所有名称以及它所属的类别。像这样的东西:

name  price  class
 a     20      y
 b     40      y 
 c     15      z

我试过这个:

SELECT name, max(price), class 
from t 
GROUP by name

但它给我带来了错误的课程。我明白了:

name  price  class
 a     20      x
 b     40      y 
 c     15      x
你能告诉我我做错了吗?

1 个答案:

答案 0 :(得分:0)

这可以为您提供所需的信息:

SELECT T.*
FROM T
    INNER JOIN (SELECT Name,
                    MAX(price) maxPrice
                FROM t
                GROUP BY Name) tMax on T.Name = tMax.Name
                                           AND T.Price = tMax.maxPrice