在包含以下列的表中:'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;
但它似乎不是一个优雅的解决方案,可以诉诸LIMIT
和ORDER
。如何使用MIN()
函数甚至其他函数获取相同的记录?
答案 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
答案 1 :(得分:0)
Skydreamer,我不确定,但据我所知,操作需要第一个独特的价值。 如果价格为1,1,2,2,3,则查询应返回价格为3的行。