알고리즘/MYSQL 16

[프로그래머스,MYSQL] Level2: 중성화 여부 파악하기

문제분석 보호소의 동물이 저장된 테이블에서 중성화여부가 Neutered 와 Spayed 인 동물들을 조사한뒤, 맞으면 O 틀리면 X로 중상화 여부를 나타내는 문제다. 문제풀이 1 2 3 -- 코드를 입력하세요 SELECT ANIMAL_ID,NAME,IF(SEX_UPON_INTAKE regexp "^Neutered|^Spayed","O","X") from ANIMAL_INS Colored by Color Scripter cs 2가지 풀이법이존재한다. 첫번째론 IF문을 사용하는것이다. IF( 조건 , 참일때 ,거짓일때) 의 기능을 구현하는것이다. 조건문은 regexp 인 정규표현식으로 나타내었다. 정규표현식을 해석하자면 -> "Neutered로 시작하거나 Spayed로 시작한 단어라면" 이다. 1 2 3 4..

알고리즘/MYSQL 2022.01.12

[프로그래머스,MYSQL] Level2: ISNULL 처리하기

문제분석: 동물들의 데이터를 담는 ANIMAL_INS 테이블을 조회하여 그중에서 프로그래밍을 모르는 NULL인 동물을 "No name"을 대신 넣어야한다. MYSQL에선 IFNULL() 메소드로 NULL값을 특정 문자열로 바꿔넣는게가능하다. 문제풀이 : 1 2 3 -- 코드를 입력하세요 SELECT ANIMAL_TYPE,IFNULL(NAME,'No name')as NAME,SEX_UPON_INTAKE from ANIMAL_INS Colored by Color Scripter cs IFNULL의 첫번째 파라미터로 NULL값이 존재하는 컬럼을 설정하고, 두번째 파라미터로 이름을 넣는다.

알고리즘/MYSQL 2022.01.12

[프로그래머스,MYSQL] Level2:입양 시각 구하기

1. 입양시간 중에 몇 시가 가장 활발하게 일어나는지 알아보려함. -> 0시~ 24시 각각 시간마다 나눠줘야함. 2. 9시~ 20시 까지만 확인하겠다. 3.각 시간대별로 입양이 몇건 발생했는지도 알아봐야함. -> count사용해야함. 4. 정렬하기 문제풀이: 1 2 3 4 5 SELECT HOUR(DATETIME) as HOUR,count(DATETIME) from ANiMAL_OUTS group by HOUR having Hour between 9 and 20 order by HOUR Colored by Color Scripter cs 우선, DATETIME을 HOUR로 시간만 뽑아 변환하였다. 그후, 뽑아온 Hour를 같은 시각끼리 그룹화 시킨뒤, 그룹화 조건인 Having을 이용하여 9시부터 20시..

알고리즘/MYSQL 2022.01.03

[프로그래머스,MYSQL] Level2: 이름이 el 들어가는 동물 찾기

문제분석 우리가 찾아야하는건 아이디와 이름 조회 -> Select 아이디,이름 조건은 동물의 종이 '개' 이며, 이름이 'el'이 포함되어야합니다. -> Where 조건 종이 '개' 라는건 Animal_type='dog' 라는걸로 쉽게 구현이가능합니다. 이름이 'el'이 포함된다는걸 구현하려면, like문을 사용하셔야합니다. 그냥 Name like 'el' 이라고 사용한다면 el인것만 찾습니다. el이 포함된 모든 이름을 찾을려면 Name like '%el%' 로 작성하셔야합니다. %el% 는 %가 익명의 문자가 와도 된다라는 뜻으로 해석하시면 될거같습니다. 문제풀이 1 2 3 4 SELECT ANIMAL_ID,NAME from ANIMAL_INS where NAME like '%el%' and ANIM..

알고리즘/MYSQL 2021.11.24

[프로그래머스,MYSQL] Level2:동명 동물 수 찾기

동물 이름중 2번 이상 쓰인 이름과 이름이 쓰인횟수를 조회하는 문제다. 동물 이름: 이건 테이블 이름으로 쓰인다. 2번이상 쓰인~ : 이건 조건으로 쓰인다. 이름: Select 문으로 쓰인다. 이름이 쓰인횟수: 이것도역시 Select 문으로 쓰인다. 횟수를 반환하는거니 count()함수를 써야한다. ------------------------------------------------------------------------ 동물이름중 2번이상 쓰인걸 확인하려면, 그룹화를 하여야한다. 따라서, group by NAME 을 하셔야한다. 하지만 2번이상 쓰인걸 조건으로 사용해야하는데, 그룹화 안에서 조건문을 쓸려면 Where문이 아닌, having 을 써야한다. 따라서, having count(Name)>..

알고리즘/MYSQL 2021.11.23

[프로그래머스,SQL] Level2: 루시와 엘라 찾기

문제분석: 1. 아이디 이름, 성별 , 중성화 여부 조회 2. 여러이름을 동시에 조회하기 SQL에서 복수의 값들을 동시에 조회하려면 in() 제어문을 쓰는게 효과적이다. 3. 아이디로 정렬 문제풀이 1 2 3 4 select animal_id,name,sex_upon_intake from animal_ins where NAME in ('Lucy','Ella','Pickle','Rogan','Sabrina','Mitty') order by animal_id Colored by Color Scripter cs

알고리즘/MYSQL 2021.10.06

[프로그래머스 ,MYSQL] Level4: 헤비 유저가 소유한 장소

문제분석 목표:헤비유저가 등록한 공간의 정보를 아이디순으로 조회하기 문제풀이 첫번째 접근 select * from places where host_id=헤비유저 order by id 헤비유저가 등록한 공간의 정보를 아이디순으로 조회하는걸 코드로 번역하면 이렇다. 두번째 접근 헤비유저인 사람들을 구하면된다. select host_id from places groub by host_id having count(host_id)>=2 헤비유저는 host_id를 그룹화해서, host_id의 갯수가 2개이상이면 헤비유저다. 헤비유저는 여러명이니, where host_id in ()으로 바꾼다. 1 2 3 4 5 6 7 8 9 10 select * from places where host_id in ( SELECT ..

알고리즘/MYSQL 2021.09.29

[프로그래머스,SQL] Level1: 여러 기준으로 정렬하기

문제분석 동물의 아이디와 이름 보호 시작일을 조회한다. 여기서 조건이 이름순으로 조회를 하되, 이름이 같으면 나중에 시작한 동물(보호 시작일이 나중부터)순으로 정렬한다. 정렬조건이 2개를 같이넣어줘야한다. 문제풀이 1.아이디, 이름, 보호시작일 검색 2. 테이블 선택 3. 이름, 보호시작일 역순으로 조회 1 2 3 4 -- 코드를 입력하세요 SELECT ANIMAL_ID,NAME,DATETIME from ANIMAL_INS order by NAME ,DATETIME desc cs

알고리즘/MYSQL 2021.08.15