У меня есть такая таблица:
product_id price product_special_id priority
1 50 1 1
1 30 2 2
1 70 3 1
2 50 1 1
... ... ... ...
Как я могу выбрать product_id из таблицы, где цена ниже 40 и пропущена 1, потому что у них больше цен с одинаковым приоритетом?
вы имеете в виду: select product_id from table where price < 40 group by 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 () вернет только эту цену.
что пропускает один?