본문 바로가기
반응형

SQL/문제풀이29

프로그래머스 상위 n개 레코드 풀이(MySQL) 사이트명 : 프로그래머스(Programmers) 문제명 : 상위 n개 레코드 SQL : MySQL ANIMAL_INS 테이블에서 NAME 컬럼 하나만 조회하는데(ANME는 오타 추정) DATETIME을 기준으로 오름차순 정렬해준 뒤 제일 상단의 하나의 행만 뽑아와야 된다 내 답안은 아래와 같은데 일단 ANIMAL_INS 테이블에서 NAME을 조회하되 ORDER BY를 걸어서 DATETIME 오름차순으로 정렬하고 LIMIT을 넣어서 제일 위 하나의 행만 조회한다 Oracle을 많이 사용해본 경우에는 ROWNUM을 쓰려고 할텐데 문제는 MYSQL에서는 그게 없어서 대신 LIMIT을 사용해 줘야 한다 2019. 9. 9.
프로그래머스 여러 기준으로 정렬하기 풀이(MySQL) 사이트명 : 프로그래머스(Programmers) 문제명 : 여러 기준으로 정렬하기 SQL : MySQL ANIMAL_INS 테이블에서 ANIMAL_ID, NAME, DATETIME으로 조회를 하는데 포인트는 NAME으로 한번 오름차순 정렬을 하고 이후 DATETIME으로 내림차순 정렬을 해서 가져오라는 얘기다 내 풀이방법은 아래와 같은데 먼저 ANIMAL_INS 테이블에서 ANIMAL_ID, NAME, DATETIME을 가져오는데 여기까지는 문제가 아니다 다만 ORDER BY가 문제인데 여기서 ASC는 넣지 않아도 된다 이해를 쉽게 하기 위해서 넣었으니까 이렇게 NAME을 넣고 그 다음에 DATETIME을 바로 넣어주면 NAME을 기준으로 한번 오름차순 정렬한 다음 이름이 동일한 조건들로는 DATETIM.. 2019. 9. 9.
프로그래머스 동물의 아이디와 이름 풀이(MySQL) 사이트명 : 프로그래머스(Programmers) 문제명 : 동물의 아이디와 이름 SQL : MySQL ANIMAL_INS 테이블에서 ANIMAL_ID, NAME 컬럼을 ANIMAL_ID 순으로 조회하라는 문제인데 내 풀이방법은 아래와 같다 일단 어느 컬럼을 조회한 것인가? ANIMAL_ID와 NAME 컬럼을 조회한다고 했으니 SELECT ANIMAL_ID, NAME 을 작성하고 어느 테이블에서 조회할 것인가? FROM ANIMAL_INS를 넣으면 ANIMAL_INS 테이블에서 조회한다는 말이다 마지막으로 어느 컬럼을 기준으로 정렬할 것인가? ANIMAL_ID 순으로 정렬한다고 했으니 ORDER BY ANIMAL_ID 를 넣어주면 된다 아무것도 넣지 않거나 ASC를 넣을 경우에는 오름차순 ORDER BY .. 2019. 9. 9.
프로그래머스 이름이 el로 끝나는 동물 찾기 풀이(MySQL) 사이트명 : 프로그래머스(Programmers) 문제명 : 이름이 el로 끝나는 동물 찾기 SQL : MySQL 조건을 설명해 보자면 ANIMAL_INS 테이블에서 ANIMAL_TYPE이 'Dog' 이어야 하고 이름에 'el' 이 들어가야 한다 (앞뒤 상관없음) 마지막으로 NAME 순으로 정렬한 뒤 ANIMAL_ID, NAME 컬럼을 조회해주면 된다 내 풀이방법은 아래와 같은데 먼저 ANIMAL_TYPE = 'Dog'를 걸어서 개만 조회하고 AND를 아랫줄에 추가해서 WHERE 문을 확장해줄 수 있다 NAME LIKE "%el%" 는 el이 들어있으면 가져온다는 말이다 %위치에 따라 내용이 약간 바뀌는데 값% -> 값으로 시작 %값 -> 값으로 끝 %값% -> 값 들어있기만 하면 됨 이후 ORDER BY.. 2019. 9. 8.
프로그래머스 루시와 엘라 찾기 풀이(MySQL) 사이트명 : 프로그래머스(Programmers) 문제명 : 루시와 엘라 찾기 SQL : MySQL ANIMAL_INS 테이블에서 NAME이 'Lucy', 'Ella', 'Pickle', 'Rogan', 'Sabrina', 'Mitty' 인 행의 ID, NAME, SEX_UPON_INTAKE를 반환하는 문젠데 저거 이름 언제 다 쓰고 있냐 내꺼 복붙해서 편하게 쓰자 내 풀이방법은 아래와 같은데 IN을 사용해서 특정 이름값만 조회가 가능하다 WHERE 컬럼명 IN('값', '값2') 이런 식으로 활용해주면 된다 해당 문제에는 해당되지 않지만 특정 값이 아닐 경우에만 출력한다면 NOT IN('값') 이런 식으로도 활용이 가능하다 마지막으로 프로그래머스에 바로 적용 가능한 답안 코드는 아래와 같다 SELECT .. 2019. 9. 8.
프로그래머스 보호소에서 중성화한 동물 풀이(MySQL) 사이트명 : 프로그래머스(Programmers) 문제명 : 보호소에서 중성화한 동물 SQL : MySQL 문제를 간단히 요약해보자면 ANIMAL_INS 테이블에서 중성화하지 않은 값(SEX_UPON_INTAKE 부분에 'Intact'가 붙은)만 가져와서 ANIMAL_OUT 테이블에서는 중성화가 된 값 (SEX_UPON_OUTCOME 부분에 'Spayed', 'Neutered')들을 ANIMAL_OUT의 ANIMAL_ID로 정렬해 출력하라는 얘기다 내 풀이방법은 아래와 같은데 서브쿼리를 사용해 ANIMAL_INS 테이블의 중성화하지 않은 값만 가져오는데 LIKE를 활용해 "%Intact%" 로 중성화하지 않은 값들만 가져올 수 있다 이후 바깥에서 ANIMAL_INS(SQ1) 테이블의 ANIMAL_ID와 A.. 2019. 9. 7.

반응형