我有一张这样的桌子:
product_id price product_special_id priority
1 50 1 1
1 30 2 2
1 70 3 1
2 50 1 1
... ... ... ...
我如何从价格低于40的表中选择product_id,并由于优先级更高的价格而跳过1?
答案 0 :(得分:0)
您的问题不太清楚,但是您可以按 product_id 和 priority 分组,并丢弃具有相同优先级的多个价格的元素,如下所示:
SELECT
product_id,
priority,
MAX(price) AS price
FROM
table_name
WHERE
price <= 40
GROUP BY
product_id, priority
HAVING
COUNT(price) < 2
由于您只有一个价格的帐户组,因此汇总方法MAX()将只返回该价格。