본문 바로가기
MySql

MySQL-0이 아닌 MIN 찾기

by 베이스 공부 2020. 12. 14.
반응형

MIN 함수를 사용하여 MySQL에서 열의 최소값을 가져 오려고합니다. 그러나 MySQL에 0 값을 무시하도록 지시 할 수 있습니까? 문제는 tinyint 열에 대해 NULL 대신 0 을 기본값으로 저장하고 있다는 것입니다. 내가 원하는 것은 0보다 큰 최소값을 얻는 것입니다.

SELECT a.baseloc_id, 
a.baseloc_latitude, 
a.baseloc_longitude, 
a.baseloc_distance, 
MIN(b.basecost_ton2_cost) as minTon2, 
MIN(b.basecost_ton3_cost) as minTon3, 
MIN(b.basecost_ton10_cost) as minTon10 
FROM bbox_logi_base_locations a 
LEFT JOIN bbox_logi_base_cost b 
    USING (baseloc_id) 
GROUP BY a.baseloc_id;

도움을 주셔서 감사합니다.

언급하는 것을 잊어서 죄송합니다. bbox_logi_base_cost 테이블에는 조각난 값이 포함 된 행이 있습니다. 예를 들어 한 행은 0 으로 basecost_ton2_cost 를 가질 수 있지만 다른 열은 값으로 채울 수 있습니다. 그리고 다른 행은 모든 열을 가질 수 있지만 하나는 0 입니다. 따라서 WHERE 조건을 사용하여 행을 필터링 할 수 없습니다.

 

해결 방법

 

이것을 사용하십시오 :

MIN(NULLIF(value, 0))

 

참조 페이지 https://stackoverflow.com/questions/2099720

 

 

반응형

댓글