안녕하세요! 조신선입니다.
오늘은 SQL max_by함수에 대해 알아보도록 하겠습니다.
max_by
SQL에서는 MAX() 함수를 사용하여 특정 열(column)에서 가장 큰 값을 반환할 수 있습니다.
하지만 MAX_BY() 함수는 MAX()와 유사하지만 그룹화된 결과에 대해 지정된 열(column)의 최대값을 가진 전체 행(row)을 반환합니다.
예를 들어, 다음과 같은 Sales 테이블이 있다고 가정해봅시다.
이 테이블에서, 각 제품(Product)의 최대 판매량(Sales)을 가진 행(row)을 반환하려면, 다음과 같이 MAX_BY() 함수를 사용할 수 있습니다.
SELECT Product, MAX_BY(Sales, Sales) as Max_Sales
FROM Sales
GROUP BY Product
이 쿼리는 다음과 같은 결과를 반환합니다.
여기서 MAX_BY() 함수는 Sales 열(column)에서 가장 큰 값을 가진 전체 행(row)을 반환합니다. 즉, Product A의 최대 판매량은 200이므로, 해당 행(row)을 반환합니다. 마찬가지로, Product B와 Product C에 대해서도 최대 판매량을 가진 행(row)을 반환합니다.
min_by
MIN_BY() 함수는 MAX_BY()와 유사하지만, 그룹화된 결과에 대해 지정된 열(column)의 최소값을 가진 전체 행(row)을 반환합니다.
예를 들어, 위에서 사용한 Sales 테이블에서, 각 제품(Product)의 최소 판매량(Sales)을 가진 행(row)을 반환하려면, 다음과 같이 MIN_BY() 함수를 사용할 수 있습니다.
SELECT Product, MIN_BY(Sales, Sales) as Min_Sales
FROM Sales
GROUP BY Product
이 쿼리는 다음과 같은 결과를 반환합니다.
위의 결과에서 MIN_BY() 함수는 Sales 열(column)에서 가장 작은 값을 가진 전체 행(row)을 반환합니다. 따라서 Product A의 최소 판매량은 100이므로 해당 행(row)을 반환합니다. 마찬가지로, Product B와 Product C에 대해서도 최소 판매량을 가진 행(row)을 반환합니다.
이상입니다.
감사합니다 :)

'programming > SQL' 카테고리의 다른 글
[SQL]5강_ ORDER BY (0) | 2023.04.23 |
---|---|
[SQL]4강_AND, OR and NOT (0) | 2023.04.23 |
[SQL] 3강_WHERE 절 (0) | 2023.04.23 |
[SQL]2강_ SELECT 구문 (0) | 2023.04.23 |
[SQL] 1강_ SQL 소개 (0) | 2023.04.23 |