programming/SQL

[SQL] max_by함수로 지정된 열(컬럼)의 최대값을 가진 전체 행(로우) 반환하기! (min_by 포함❤︎)

Jofresh 2023. 4. 21. 16:36
728x90
반응형

안녕하세요! 조신선입니다.

오늘은 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 쿼리 결과값

 

위의 결과에서 MIN_BY() 함수는 Sales 열(column)에서 가장 작은 값을 가진 전체 행(row)을 반환합니다. 따라서 Product A의 최소 판매량은 100이므로 해당 행(row)을 반환합니다. 마찬가지로, Product B와 Product C에 대해서도 최소 판매량을 가진 행(row)을 반환합니다.

 

 

이상입니다.

 

감사합니다 :)

 

 

 

 

 

728x90
반응형

'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