문제
SQLite
내가 작성한 정답
select substr(address,1,instr(address,' ')-1) sido,
substr(address, instr(address, ' ') + 1, instr(substr(address, instr(address, ' ') + 1), ' ') - 1) sigungu,
count(cafe_id) cnt
from cafes
group by sido, sigungu
order by cnt desc
- instr(address, ' ')+1
- substr(address, instr(address, ' ') + 1)로 주소의 시도를 제외한 나머지를 가져온다.
- instr(substr(address, instr(address, ' ') + 1), ' ') - 1로 주소의 시도를 제외한 나머지 주소에서 시군구의 위치가 끝나는 지점을 반환한다
- substr(address, instr(address, ' ') + 1, instr(substr(address, instr(address, ' ') + 1), ' ') - 1) : address에서 시군구의 시작점부터 시군구가 끝나는 지점까지 가져온다.
instr(검색할 문자열, 찾고자 하는 부분 문자열)
: 주어진 문자열에서 특정 문자가 처음으로 나타나는 위치를 반환한다. 위치는 1부터 시작한다.
substr(원본 문자열, 추출을 시작할 위치 (1부터 시작), 추출할 문자열의 길이 (선택적))
: 주어진 문자열의 특정 위치에서 시작하여 지정된 길이만큼의 부분 문자열을 반환한다.
Share article