MySQL:如何从具有重复行的表中获取最小值?

时间:2012-11-08 09:36:25

标签: mysql

我的桌子有下面的结构。此表中的内容是重复的。我想以最低价格显示记录。

GROUP  IDX  NAME       PRICE

141003  6   0285-00    499.88000
141003  2   028500     519.13000
141003  1   0285-00    424.12000
141005  2   02851      559.13000
141005  1   0285-1     434.12000

结果表

141003  1   0285-00    424.12000
141005  1   0285-1     434.12000

我尝试了这个,但返回的结果是:

141003  6   0285-00    499.88000

查询:

select group, idx, name, price
                FROM table
                GROUP BY group
                ORDER BY price;

3 个答案:

答案 0 :(得分:2)

如果您想知道每组中的最低价格,请使用以下查询:

select `group`, `idx`, `name`, MIN(price) AS min_price
                FROM `table`
                GROUP BY `group`;

Documentation for 'MIN' function

答案 1 :(得分:1)

SELECT group, idx, name, price
    FROM table
    WHERE group = 141003
    ORDER BY price ASC
    LIMIT 1;

会做的伎俩。

答案 2 :(得分:0)

首先,群组是MySQL中的保留字。您应该使用`周围或重命名表。像这样:

select `group`, idx, name, price from test_2 where `group` = 141003 order by price desc limit 1;

如果该组处于具有一个值的where条件,您为什么要进行分组?你想要所有团体中最便宜的物品吗?