분류 전체보기 799

[Lv.3 / 프로그래머스 / SQL] 없어진 기록 찾기

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 (MySQL) ANIMAL_OUTS 테이블에는 있지만, ANIMAL_INS 테이블에는 존재하지 않는 데이터를 조회해야 한다. 두 테이블 모두에게 존재하는 데이터를 찾는 것이 아니니, INNER가 아닌 OUTER 조인을 사용한다. SELECT OUTS.ANIMAL_ID , OUTS.NAME FROM ANIMAL_OUTS AS OUTS LEFT OUTER JOIN ANIMAL_INS AS INS ON INS.ANIMAL_ID = OUTS.ANIMAL_ID WHERE INS.ANIMAL_ID IS NULL O..

[Lv.2 / 프로그래머스 / SQL] 루시와 엘라 찾기

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 (MySQL) 이름이 Lucy, Ella, Pickle, Rogan, Sabrina, Mitty 중 하나일 경우를 조회해야 한다. 이렇게 여러 개의 스트링에 속하는지 여부를 판별할 때에는 IN 을 사용하면 편하게 구현할 수 있다. SELECT ANIMAL_ID , NAME , SEX_UPON_INTAKE FROM ANIMAL_INS WHERE NAME IN ("Lucy", "Ella", "Pickle", "Rogan", "Sabrina", "Mitty") ORDER BY ANIMAL_ID

[Lv.2 / 프로그래머스 / SQL] NULL 처리하기

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 (MySQL) NAME이 NULL인 경우 "No name" 이라는 값으로 대체해서 조회해야 한다. IFNULL 함수를 이용할 경우 위와 같은 NULL 처리가 가능하다. SELECT ANIMAL_TYPE , IFNULL(NAME, "No name") AS NAME , SEX_UPON_INTAKE FROM ANIMAL_INS ORDER BY ANIMAL_ID 혹은 아래와 같이 IF를 이용하여 삼항 연산자 방식으로 해결할 수도 있다. SELECT ANIMAL_TYPE , IF(NAME IS NULL, "No ..

[Lv.1 / 프로그래머스 / SQL] 인기있는 아이스크림

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 (MySQL) TOTAL_ORDER를 기준으로 내림차순, 같다면 SHIPMENT_ID를 기준으로 오름차순 한 것의 FLAVOR를 조회해야 한다. SELECT FLAVOR FROM FIRST_HALF ORDER BY TOTAL_ORDER DESC , SHIPMENT_ID

[Lv.1 / 프로그래머스 / SQL] 나이 정보가 없는 회원 수 구하기

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 (MySQL) 나이 정보가 NULL인 회원의 수를 조회해야 한다. SELECT COUNT(USER_ID) AS USERS FROM USER_INFO WHERE AGE IS NULL

[Lv.3 / 프로그래머스 / SQL] 즐겨찾기가 가장 많은 식당 정보 출력하기

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 (MySQL) FOOD_TYPE별로 FAVORITES가 가장 높은 식당의 ID와 NAME을 함께 출력해야 한다. 필자는 FOOD_TYPE별 가장 높은 FAVORITES를 추린 뒤, WHERE절에서 비교하여 가져오는 방식으로 해결했다. Implicit Join SELECT A.FOOD_TYPE , REST_ID , REST_NAME , FAVORITES FROM REST_INFO AS A , ( SELECT FOOD_TYPE , MAX(FAVORITES) AS MAX_FAVORITES FROM REST_I..

[Lv.2 / 프로그래머스 / SQL] 자동차 평균 대여 기간 구하기

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 (MySQL) 대여 기간이 평균 7일 이상인 자동차의 ID와 그 평균 기간을 조회해야 한다. DATE 타입의 두 날짜의 차이를 구해야 하므로 DATEDIFF 함수를 사용했다. AVERAGE_DURATION이 7일 이상인 조건을 적어야 할 때, WHERE이 아닌 HAVING을 사용해야 함을 주의해야 한다. 관련 포스팅은 아래에 기재되어 있다. [SQL] Select절에 별칭(AS) 사용 후 Where절 Unknown Column 발생 이유 에러 메시지 SQL 오류 (1054): Unknown column ..

[Lv.1 / 프로그래머스 / SQL] 여러 기준으로 정렬하기

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 (MySQL) 이름은 오름차순으로, 만약 이름이 같다면 날짜를 내림차순으로 정렬하여 조회해야 한다. ORDER BY절에 여러 줄의 조건을 작성하면 먼저 적힌 것부터 순차적으로 여러 기준으로 정렬이 가능하다. SELECT ANIMAL_ID , NAME , DATETIME FROM ANIMAL_INS ORDER BY NAME , DATETIME DESC

[Lv.1 / 프로그래머스 / SQL] 상위 n개 레코드

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 (MySQL) 조회된 목록 중 제한된 개수만 취하고 싶을 경우, LIMIT을 사용하면 된다. 따라서 날짜를 오름차순 정렬한 뒤 LIMIT 1을 통해 가장 상위 케이스 하나만 출력할 수 있다. SELECT NAME FROM ANIMAL_INS ORDER BY DATETIME LIMIT 1

[Lv.2 / 프로그래머스 / SQL] 가격이 제일 비싼 식품의 정보 출력하기

프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 (MySQL) 가장 가격이 비싼 항목을 하나 출력해야 한다. 다양한 풀이 방법이 있다. 정렬을 이용하여 가격 내림차순의 첫 번째 것을 고르는 것, 서브쿼리나 조인을 이용하는 것 등... 필자는 처음에 서브쿼리로 풀이했다. SUB QUERY SELECT PRODUCT_ID , PRODUCT_NAME , PRODUCT_CD , CATEGORY , PRICE FROM FOOD_PRODUCT WHERE PRICE = ( SELECT MAX(PRICE) FROM FOOD_PRODUCT ) 위의 풀이도 정답이지만,..

반응형