MYSQL - 获得唯一的最小值

时间:2011-12-29 17:34:47

标签: mysql

在包含以下列的表中:'product_id', 'price', ...(和其他)。我需要获得给定product_id的最低和唯一价格的记录 我尝试了不同的句子而没有预期的结果。最后我遇到了这句话(对于product_id = 2):

SELECT `price` , `product_id`
FROM bids
WHERE `product_id` = 2
GROUP BY `price`
HAVING COUNT( `price` ) = 1
ORDER BY `price`
LIMIT 1;

但它似乎不是一个优雅的解决方案,可以诉诸LIMITORDER。如何使用MIN()函数甚至其他函数获取相同的记录?

2 个答案:

答案 0 :(得分:1)

这应该有效,因为您已经指定要分析的product_id

SELECT MIN(t1.price) AS price, t1.product_id
FROM
(
    SELECT price, product_id
    FROM bids
    WHERE product_id = 1
    GROUP BY price, product_id
    HAVING COUNT(price) = 1
) t1

备注:MIN/MAX vs ORDER BY and LIMIT

答案 1 :(得分:0)

Skydreamer,我不确定,但据我所知,操作需要第一个独特的价值。 如果价格为1,1,2,2,3,则查询应返回价格为3的行。