SQL에서의 FIRST_VALUE 함수: 활용과 예제
Data Analyst

빅데이터 관련 자료/[SQL] Basic

SQL에서의 FIRST_VALUE 함수: 활용과 예제

carpe08 2024. 4. 8. 15:59
320x100
320x100

SQL에서 FIRST_VALUE 함수는 데이터 집합 내에서 첫 번째 값을 반환하는 유용한 함수입니다. 이 함수는 특히 윈도우 함수나 ORDER BY 절과 함께 사용될 때 더욱 강력한 기능을 발휘합니다. 이 블로그에서는 FIRST_VALUE 함수의 사용법과 몇 가지 예제를 살펴보겠습니다.

FIRST_VALUE 함수 구문

sqlCopy code
FIRST_VALUE(expression) OVER (
    [PARTITION BY partition_expression, ... ]
    ORDER BY order_expression [ASC | DESC]
    ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING
)

  • expression: 반환할 값입니다.
  • PARTITION BY: 데이터를 파티션화하는 데 사용됩니다. (옵션)
  • ORDER BY: 정렬 순서를 지정합니다.
  • ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING: 윈도우의 범위를 지정합니다.

FIRST_VALUE 함수의 활용

1.가장 빠른 날짜/시간 찾기: 주문 데이터에서 가장 빠른 주문일을 찾을 때 유용합니다.

sqlCopy code
SELECT order_id, order_date,
       FIRST_VALUE(order_date) OVER (ORDER BY order_date) AS first_order_date
FROM orders;

2.각 그룹 내에서의 최초 값 찾기: 카테고리별로 가장 첫 번째로 등장하는 제품을 찾을 수 있습니다.

sqlCopy code
SELECT product_id, category_id,
       FIRST_VALUE(product_id) OVER (PARTITION BY category_id ORDER BY product_id) AS first_product_id
FROM products;

3.데이터 간의 차이 계산: 각 행의 값과 첫 번째 행의 값을 비교하여 차이를 계산할 수 있습니다.

sqlCopy code
SELECT timestamp, value,
       value - FIRST_VALUE(value) OVER (ORDER BY timestamp) AS value_difference
FROM sensor_data;

FIRST_VALUE 함수 예제

예제 데이터:

ID Name Score

1 Alice 85
2 Bob 72
3 Charlie 90
4 Dave 68
  1. 각 행에 대해 첫 번째 행의 점수와의 차이를 계산합니다.
sqlCopy code
SELECT ID, Name, Score,
       Score - FIRST_VALUE(Score) OVER (ORDER BY ID) AS Score_Difference
FROM Students;

 

결과:

ID Name Score Score_Difference

1 Alice 85 0
2 Bob 72 -13
3 Charlie 90 5
4 Dave 68 -17

이 블로그를 통해 SQL의 FIRST_VALUE 함수의 개념과 활용에 대해 이해하셨을 것입니다. 이 함수는 데이터 분석 및 리포팅 작업에서 매우 유용하며, 복잡한 쿼리를 보다 간결하고 효율적으로 작성할 수 있도록 도와줍니다.

320x100
320x100