У меня есть таблица с тремя столбцами: год, бренд, сумма, и я хочу, чтобы запрос возвращал записи о бренде, сумма которого увеличивается с каждым годом.
Я вставил ниже образцы входных данных и ожидаемые выходные данные.
формат таблицы:
Ожидаемый результат:
Что касается IBM, сумма увеличивается с каждым годом.
8.0.26 - это моя версия MYsql и удален тег plsql.
SELECT *
FROM brands
WHERE brand in
(SELECT brand
FROM
(SELECT brand,
(amount - lag(amount, 1, 0) OVER (PARTITION BY brand
ORDER BY year_v)) diff
FROM brands) t
GROUP BY brand
HAVING min(diff) > 0) ;
lag(): LAG (скалярное_выражение [,смещение] [,по умолчанию]) OVER ( [ раздел_по_клаузе ] порядок_по_клаузе )
Может быть возможность рефакторинга этого запроса, но я оставлю это на усмотрение OP.
Какая версия MySQL? Кроме того, почему вы пометили свой вопрос plsql?