我有一个带有以下记录集的mysql表。
Product_id reg_price sale_price
244 50 40
244 45 40
244 45 0
244 40 0
我需要从此表中找到最大和最小reg_price,max,min sale_price,条件是如果sale_price为0.00,那么它应该返回第二个最高值,即40.
我的疑问是:
SELECT MAX(regular_price) AS max_regular_price,
MIN(regular_price) AS min_regular_price,
MAX(sale_price) AS max_sale_price,
MIN(sale_price) AS min_sale_price
FROM `table`
where product_id` = 244 LIMIT 1
但它将min_sale_price设为0.00。我应该如何修改它以获得所需的结果?
答案 0 :(得分:1)
SELECT
MIN(NULLIF(sale_price, 0))
FROM `table`
WHERE product_id = 244;
答案 1 :(得分:0)
我认为您可以归档结果的唯一方法是使用LIMIT 2进行多次查询,选择第二个结果MIN,而MAX不用于从MIN或MAX中选择第x个值。
SELECT sale_price AS min_sale_price
FROM `table`
WHERE product_id` = 244 ORDER BY sale_price LIMIT 2
所以第二个结果是MIN + 1