달나라 노트

Redshift : GREATEST, LEAST (여러 값 중 최대/최소값 return) 본문

SQL/Redshift

Redshift : GREATEST, LEAST (여러 값 중 최대/최소값 return)

CosmosProject 2020. 12. 17. 02:38
728x90
반응형

 

 

GREATEST

Syntax

GREATEST(exp1, exp2, ...)

GREATEST 함수는 여러 exp중 가장 큰 값을 return합니다.
exp는 column name일 수도 있고 특정 값일수도 있습니다.



table name = products

product_no category_no price
1250 10 10000
3028 10 8000
2075 10 7000
5217 10 12000
4203 20 11000
3356 20 5500
2103 20 3030
4301 20 6040
8043 30 1010
3356 30 5500
9034 30 9040
1234 30 6500

 

 

 

SELECT  product_no,
        category_no,
        price,
        GREATEST(price, 5000) AS temp
FROM products

 

product_no category_no price temp
1250 10 10000 10000
3028 10 8000 8000
2075 10 7000 7000
5217 10 12000 12000
4203 20 11000 11000
3356 20 5500 5500
2103 20 3030 5500
4301 20 6040 6040
8043 30 1010 5000
3356 30 5500 5500
9034 30 9040 9040
1234 30 6500 6500

 

위 결과는 price 컬럼에 있는 값들을 비교하여 price 컬럼의 값 중 하나의 row와 5000을 비교하여 둘 중 더 큰 것을 반환합니다.
따라서 3030, 1010같이 5000보다 작은 값은 더 큰 값인 5000이 반환됩니다.



 

 

 

LEAST

Syntax

LEAST(exp1, exp2, ...)

LEAST 함수는 여러 exp중 가장 작은 값을 return합니다.
exp는 column name일 수도 있고 특정 값일수도 있습니다.



table name = products

product_no category_no price
1250 10 10000
3028 10 8000
2075 10 7000
5217 10 12000
4203 20 11000
3356 20 5500
2103 20 3030
4301 20 6040
8043 30 1010
3356 30 5500
9034 30 9040
1234 30 6500

 

 

SELECT  product_no,
        category_no,
        price,
        LEAST(price, 5000) AS temp
FROM products

 

product_no category_no price temp
1250 10 10000 5000
3028 10 8000 5000
2075 10 7000 5000
5217 10 12000 5000
4203 20 11000 5000
3356 20 5500 5000
2103 20 3030 3030
4301 20 6040 5000
8043 30 1010 1010
3356 30 5500 5000
9034 30 9040 5000
1234 30 6500 5000

 

위 결과는 price 컬럼에 있는 값들을 비교하여 price 컬럼의 값 중 하나의 row와 5000을 비교하여 둘 중 더 작은 것을 반환합니다.
따라서 10000, 8000같이 5000보다 큰 값은 더 작은 값인 5000이 반환됩니다.

 

 

 

 

 

728x90
반응형
Comments