FIRST_VALUE, LAST_VALUE И NTH_VALUE ГРУППЫ В POSTGRESQL

  • Михаил
  • 12 мин. на прочтение
  • 188
  • 11 Nov 2022
  • 11 Nov 2022

В этом уроке мы будем использовать функции FIRST_VALUE, LAST_VALUE и nth_VALUE в postgresql, чтобы получить первое значение, последнее значение и n-е значение группы с помощью предложения PARTITION BY.

FIRST_VALUE :  возвращает первое значение каждой группы на основе полей, примененных в предложении PARTITION BY. Если PARTITION BY не указан, функция обрабатывает все строки набора результатов запроса как одну группу.

LAST_VALUE :  возвращает последнее значение каждой группы на основе полей, примененных в предложении PARTITION BY.

Nth_VALUE:  возвращает n-е значение каждой группы на основе полей, примененных в предложении PARTITION BY.

Таблица BASKET , которую мы используем для изображения, показана ниже .

First_value и last_value в postgresql 1

 

FIRST_VALUE в postgresql:

FIRST_VALUE в postresql возвращает первое значение каждой группы

select *, FIRST_VALUE (price)  
OVER (
PARTITION BY item_group

ORDER BY
price
) 
from Basket;

Итак, результирующая таблица

First_value и last_value в postgresql 2

 

LAST_VALUE в postgresql:

LAST_VALUE в postresql возвращает последнее значение каждой группы

select *, LAST_VALUE (price)  
OVER (
PARTITION BY item_group

ORDER BY
price 
RANGE BETWEEN UNBOUNDED PRECEDING
 AND UNBOUNDED FOLLOWING
) 
from Basket;

Итак, результирующая таблица

First_value и last_value в postgresql 3

 

Nth_VALUE в postgresql:

Nth_VALUE в postresql возвращает n-е значение каждой группы

select *, nth_VALUE (price,3)  OVER (

PARTITION BY item_group

ORDER BY 
price 
RANGE BETWEEN UNBOUNDED PRECEDING
 AND UNBOUNDED FOLLOWING
)
 from Basket;

Таким образом, результирующая таблица с 3 - м значением каждой группы будет

First_value и last_value в postgresql 4