728x90
풀려고 한 문제 : raw data에서 ,가 포함된 가격 형태
1. 처음에 import 할 때는 text 형태로 import
2. 가격 컬럼의 데이터타입을 int로 바꾸고 싶다
1) 가격에서 , 제거
2) 가격 컬럼 데이터타입을 int로 변경하기
(추출할 때마다 convert, cast 해주는 방법도 있겠지만 귀찮을 것 같음)
#가격에서 , 제거
update 테이블명 set 컬럼명 = replace( 컬럼명, ',' , '')
#가격에 NULL값이 있는 경우에 0원으로 처리하고 싶은 경우
update 테이블명
set 컬럼명 = '0' where trim(coalesce(컬럼명, '')) = '';
#coalesce -> IFNULL이랑 비슷함. 그런데 여러개 인수를 사용가능함.
#가격에 NULL값으로 되어있진 않은데 비어있는 경우에 0원으로 처리하고 싶은 경우
update 테이블명
set 테이블명 = '0' where trim(컬럼명) = '';
#바뀐 가격 컬럼을 int형으로 만들기
ALTER TABLE 테이블명
MODIFY COLUMN 컬럼명 데이터타입
참고) COALESCE함수
- COALESCE 함수는 처음으로 NULL이 아닌 컬럼 값을 만나면 그 컬럼 값을 리턴.
- 컬럼1이 NULL이 아니면 컬럼1을 리턴. 컬럼1이 NULL이고 컬럼2가 NULL이 아니면 컬럼2를 리턴.. 컬럼1부터 컬럼 n-1까지 데이터가 NULL이면 컬럼N값을 리턴!
참고한 글
https://stackoverflow.com/questions/21784201/mysql-convert-column-datatype-from-varchar-to-int
'IT Data 분석' 카테고리의 다른 글
[SQL] HackerRank Weather Observation Station 18 (0) | 2022.11.07 |
---|---|
[SQL] HackerRank PROJECT PLANNING (0) | 2022.11.06 |
[SQL] Hackerrank Symmetric Pairs (0) | 2022.11.06 |
[SQL] HackerRank Placements (0) | 2022.11.06 |
[ADSP] 3과목 데이터분석 - 통계분석 (0) | 2022.10.10 |