Select max() 每个值的 mariaDB

Select max() of every value mariaDB

我有一个 table 看起来像这样:

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

我想为每个名称获取价格最高且属于 class 的名称。像这样:

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

我试过这个:

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

但它给我带来了错误 class。我明白了:

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

你能告诉我我做错了什么吗?

这应该能满足您的需求:

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