Простой вопрос по запросу

Copenhagen

Новичок
Есть таблица, упрощенно:
PHP:
номер_продукта  номер_поставки  цена_в_поставке  дата_поставки
Мне нужно для разных номеров товаров получить цены в последних нескольких поставках.
Одним запросом это делается как:
PHP:
SELECT * FROM таблица WHERE p_id=номер_продукта ORDER BY дата_поставки LIMIT 10
Для большого количества продуктов придется бомбить запросами mysql. Как это сделать одним запросом?
 

~WR~

Новичок
В PostgreSQL это делается очень просто.

PHP:
SELECT *
FROM (
    SELECT *, row_number() OVER (PARTITION BY номер_продукта ORDER BY дата_поставки DESC)
    FROM таблица
) a
WHERE row_number <= 10
Выберет по 10 последних строчек для каждого продукта.
В MySQL так нельзя, поэтому мой пост бесполезен. Просто захотелось написать зачем-то. ^__^
 
  • Like
Реакции: KorP

Copenhagen

Новичок
1. Да, выбрать из всех последних поставок (выбираются последние из всех вообще за счет "ORDER BY дата_поставки")
2. не понял
3. Нет, цены выбрать такие какие были, то есть какие они записаны в базе.
 

prolis

Новичок
Нужно было выбрать один вариант, ты выбрал первый, не благодари:
Код:
SELECT * FROM таблица ORDER BY номер_продукта, дата_поставки
(необходимо конкретно формулировать свои задачи)
 

Copenhagen

Новичок
Ну и где здесь ограничение на количество результатов для "номер_продукта"?
 

С.

Продвинутый новичок
prolis, вопрос был вполне себе четкий и интересный. Зачем ты мусоришь?
 
Сверху