본문 바로가기
SELECT > 재구매가 일어난 상품과 회원 리스트 구하기 / SQL HAVING절 예제 문제설명다음은 어느 의류 쇼핑몰의 온라인 상품 판매 정보를 담은 ONLINE_SALE 테이블 입니다. ONLINE_SALE 테이블은 아래와 같은 구조로 되어있으며 ONLINE_SALE_ID, USER_ID, PRODUCT_ID, SALES_AMOUNT, SALES_DATE는 각각 온라인 상품 판매 ID, 회원 ID, 상품 ID, 판매량, 판매일을 나타냅니다.Column nameTypeNullableONLINE_SALE_IDINTEGERFALSEUSER_IDINTEGERFALSEPRODUCT_IDINTEGERFALSESALES_AMOUNTINTEGERFALSESALES_DATEDATEFALSE동일한 날짜, 회원 ID, 상품 ID 조합에 대해서는 하나의 판매 데이터만 존재합니다.문제ONLINE_SALE 테이.. 2025. 3. 25.
SELECT > 서울에 위치한 식당 목록 출력하기 / MySQL 소수점 관련 주요 함수 문제 설명다음은 식당의 정보를 담은 REST_INFO 테이블과 식당의 리뷰 정보를 담은 REST_REVIEW 테이블입니다. REST_INFO테이블은 다음과 같으며 REST_ID, REST_NAME, FOOD_TYPE, VIEWS, FAVORITES, PARKING_LOT, ADDRESS, TEL은 식당 ID, 식당 이름, 음식 종류, 조회수, 즐겨찾기수, 주차장 유무, 주소, 전화번호를 의미합니다.Column nameTypeNullableREST_IDVARCHAR(5)FALSEREST_NAMEVARCHAR(50)FALSEFOOD_TYPEVARCHAR(20)TRUEVIEWSNUMBERTRUEFAVORITESNUMBERTRUEPARKING_LOTVARCHAR(1)TRUEADDRESSVARCHAR(100)TR.. 2025. 3. 25.
[프로그래머스] String, Date 〉Lv2. DATETIME에서 DATE로 형 변환 문제 설명 예시 - 시각(시-분-초)을 제외한 날짜(년-월-일)만 보여주세요. 풀이 방법 동물 보호소에 들어온 동물 중, 각 동물의 아이디와 이름, 들어온 날짜를 조회하는 문제로 결과는 아이디 순으로 조회해야 합니다. 이때 시각을 제외한 날짜만 보여줘야 하므로 SELECT절에서 DATETIME컬럼의 DATE_FORMAT을 '%Y-%m-%d'로 변환하고 alias를 '날짜'로 지정합니다. DATE_FORMAT은 (날짜컬럼명,'%Y or %y -%M or %m- %D or %d')를 사용하여 날짜를 변환합니다. 여기서 %Y는 년도를 4개의 숫자로 표현하여 2001, 2002, 2021,...와 같이 나타낼 수 있으며, %y는 뒤의 두 수로 2002년이면 02로, 2021이면 21로 표현됩니다. %M은 Mon.. 2021. 10. 29.
[프로그래머스] String, Date 〉Lv3. 오랜 기간 보호한 동물(2) 문제 설명 예시 풀이 방법 입양 간 동물 중, 보호 기간이 가장 길었던 동물 두 마리의 아이디와 이름을 조회하는 문제로 결과는 보호 기간이 긴 순으로 조회 해야 합니다. 보호 시작일과 입양일의 차이를 구하여 가장 큰 값 순으로 나열하면 보호 기간이 가장 긴 동물 순으로 나열될 것입니다. 이를 위해 FROM절에서 두 테이블을 모두 적고 ALIAS를 사용하여 ANIMAL_INS는 I, ANIMAL_OUTS는 O으로 구분합니다. WHERE절에서는 각 테이블의 식별자인 아이디가 같을 때의 조건을 제시합니다. 다음으로 O의 입양일에서 I의 보호 시작일을 빼고, 이를 DESC로 내림차순으로 정렬합니다. 그러면 보호 기간이 긴 데이터는 상단에 위치하고 보호 기간이 짧은 데이터는 하단에 위치하게 됩니다. 그리고 가장 .. 2021. 10. 28.
[프로그래머스] String, Date 〉Lv2. 중성화 여부 파악하기 문제 설명 예시 풀이 방법 보호소 동물의 중성화 여부를 파악하려 합니다. 중성화된 동물은 SEX_UPON_INTAKE 컬럼에 'Neutered' 또는 'Spayed'라는 단어가 있습니다. 동물의 아이디와 이름, 중성화 여부를 아이디 순으로 조회하는 쿼리를 작성하는 문제입니다. 이때 중성화가 되어 있다면 'O', 아니라면 'X'로 표시 합니다. 이를 위해 SELECT절에 조회할 컬럼명을 우선 선정해 봅니다. 동물의 아이디, 이름, 중성화 여부. 동물의 아이디와 이름은 ANIMAL_ID와 NAME으로 표현하면 됩니다. 그러나 중성화 여부는 CASE문을 작성하여 중성화 여부를 판별하고, 그에 맞는 문자로 표시하는 것까지 해봅시다. 우선 CASE문의 사용법을 알아봅시다. CASE WHEN 조건 THEN 반환값 .. 2021. 10. 27.
[프로그래머스] String, Date 〉Lv2. 이름에 el이 들어가는 동물 찾기 문제 설명 예시 풀이 방법 보호소에 개 이름에 'el'이 들어간 개를 찾는 사람이 찾아왔습니다. 동물 보호소에 들어온 동물 이름 중, 이름에 "EL"이 들어가는 개의 아이디와 이름을 조회하는데 결과는 이름 순으로 조회하는 문제입니다. 단, 이름의 대소문자는 구분하지 않습니다. FROM절에 테이블 명인 ANIMAL_INS를 적고, WHERE절에 이름에 "EL"이 들어가는 개를 찾는 조건을 제시합니다. 이 때, 사용할 수 있는 것은 LIKE 연산자와 와일드카드인 '%'를 사용하여 이름에 "EL"이 들어가고, 생물 종이 'Dog'인 조건을 만듭니다. 마지막으로 이름 순으로 ORDER BY 하여 정렬합니다. 조회해야 하는 것은 동물의 아이디와 이름이므로, SELECT절에 ANIMAL_ID와 NAME을 적습니다... 2021. 10. 26.
[프로그래머스] String, Date 〉Lv2. 루시와 엘라 찾기 문제 설명 예시 풀이 방법 동물 보호소에 들어온 동물 중, 이름이 Lucy, Ella, Pickle, Rogan, Sabrina, Mitty인 동물의 ID와 이름, 성별 및 중성화 여부를 조회하는 문제로 결과는 아이디 순으로 조회해야 합니다. FROM절에 보호소에 들어온 동물의 정보를 담은 테이블 ANIMAL_INS을 넣고, WHERE절에서 문제의 핵심 요구사항인 동물의 이름 컬럼 안에(IN) 해당 이름의 동물이 있는지 조건으로 명시합니다. 마지막으로 동물의 아이디 순으로 ORDER BY합니다. 문제 풀이 SELECT ANIMAL_ID, NAME, SEX_UPON_INTAKE FROM ANIMAL_INS WHERE NAME IN ('Lucy', 'Ella', 'Pickle', 'Rogan', 'Sabri.. 2021. 10. 25.
[프로그래머스] JOIN 〉Lv4. 보호소에서 중성화한 동물 문제 설명 예시 풀이 방법 보호소에서 중성화 수술을 거친 동물 정보를 알아보기 위한 쿼리를 짭니다. 보호소에 들어올 당시에는 중성화되지 않았지만(성별 및 중성화 여부에 Intact인 동물), 보호소를 나갈 당시에는 중성화된(성별 및 중성화 여부에 Spayed 또는 Neutered로 표시되어 있는 동물) 동물의 아이디와 생물 종, 이름을 조회하는 아이디 순으로 조회하는 문제입니다. FROM절에서 보호소에 들어온 동물의 정보가 담긴 테이블 ANIMAL_INS와 입양간 동물의 정보가 담긴 테이블 ANIMAL_OUTS를 동물의 아이디로 매치하여 JOIN합니다. WHER절에서 중성화 여부에 대한 조건을 명시하는데, 글자를 포함하는지 알아보기 위해서는 LIKE 연산자 와 와일드카드('%,_')를 사용하여 해당 문자.. 2021. 10. 24.