查找具有相同商品编号的每组行的最低价格条目的详细信息

时间:2012-05-22 11:12:13

标签: mysql sorting grouping greatest-n-per-group

我读了很多关于这一点,但没有一个对我有用。有人可以帮忙吗?

我有一张大桌子,里面有很多不同的文章(很多有相同的EAN),并且只需要最便宜的(按价格排序)和正确的AN:

*art   price   an    ean
*Test |79,00|15770|0808736558136
*Test |85,00|k3238|0808736558136
*Test |68,00|r4850|0808736558136
*Test |65,00|a1117|0808736558136
*Test |78,00|t8619|0808736558136

期待这一个:

*Test |65,00|a1117|0808736558136

2 个答案:

答案 0 :(得分:4)

SELECT B.*
  FROM BigTable AS B -- Why do SQL questions omit the table names so often?
  JOIN (SELECT EAN, MIN(Price) AS Price
          FROM BigTable
         GROUP BY EAN
       ) AS P
    ON B.EAN = P.EAN AND B.Price = P.Price
 ORDER BY B.EAN;

子查询查找每个EAN的最低价格;外部查询查找与EAN匹配的详细信息以及该EAN的最低价格。如果给定EAN的两个记录具有相同的最低价格,则将选择两个记录。

答案 1 :(得分:0)

SELECT * FROM myTable ORDER BY price ASC LIMIT 1