SQL
-
[프로그래머스]조건에 부합하는 중고거래 댓글 조회하기(LV.1)SQL 2023. 6. 12. 12:52
USED_GOODS_BOARD와 USED_GOODS_REPLY 테이블에서 2022년 10월에 작성된 게시글 제목, 게시글 ID, 댓글 ID, 댓글 작성자 ID, 댓글 내용, 댓글 작성일을 조회하는 SQL문을 작성해주세요. 결과는 댓글 작성일을 기준으로 오름차순 정렬해주시고, 댓글 작성일이 같다면 게시글 제목을 기준으로 오름차순 정렬해주세요. 첫번째 작성한 답 SELECT A.title AS TITLE, A.board_id AS BOARD_ID, B.reply_id AS REPLY_ID, B.writer_id AS WRITER_ID, B.contents as CONTENTS, DATE_FORMAT(B.created_date, '%Y-%m-%d') as CREATED_DATE FROM USED_GOODS_B..
-
[프로그래머스]과일로 만든 아이스크림 고르기(LV.1)SQL 2023. 6. 11. 21:10
sqld를 공부했더니 sql에 조금 자신감이 생겼다. 상반기 아이스크림 총주문량이 3,000보다 높으면서 아이스크림의 주 성분이 과일인 아이스크림의 맛을 총주문량이 큰 순서대로 조회하는 SQL 문을 작성해주세요. 작성한 정답 SELECT A.FLAVOR FROM FIRST_HALF A INNER JOIN ICECREAM_INFO B ON A.FLAVOR = B.FLAVOR WHERE B.INGREDIENT_TYPE= 'fruit_based' AND A.TOTAL_ORDER >= 3000 ORDER BY A.TOTAL_ORDER; ORDER BY를 제거했더니 정답 처리가 되었다..뭐지? join을 처음으로 제대로 이해하고 써보았다. 뿌듯!
-
[프로그래머스]자동차 대여 기록에서 장기/단기 대여 구분하기(Lv.1)SQL 2023. 4. 17. 09:23
CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블에서 대여 시작일이 2022년 9월에 속하는 대여 기록에 대해서 대여 기간이 30일 이상이면 '장기 대여' 그렇지 않으면 '단기 대여' 로 표시하는 컬럼(컬럼명: RENT_TYPE)을 추가하여 대여기록을 출력하는 SQL문을 작성해주세요. 결과는 대여 기록 ID를 기준으로 내림차순 정렬해주세요. SELECT HISTORY_ID, CAR_ID, DATE_FORMAT(START_DATE,'%Y-%m-%d') as START_DATE, DATE_FORMAT(END_DATE, '%Y-%m-%d') AS END_DATE, CASE WHEN END_DATE - START_DATE >= 29 THEN '장기 대여' ELSE '단기 대여' END AS R..
-
[프로그래머스]Lv.1 문제 모음SQL 2023. 4. 13. 18:01
호기롭게 Lv.4 문제를 도전하였으나 기초 연습을 해야할 필요성을 느껴 Lv.1부터 다시 시작. 1. 모든 레코드 조회하기 SELECT * FROM ANIMAL_INS ORDER BY ANIMAL_ID; 쉽다..신난다 2. 역순 정렬하기 SELECT NAME, DATETIME FROM ANIMAL_INS ORDER BY ANIMAL_ID DESC; 이런 것만 하고 싶다.. 3. 아픈 동물 찾기 SELECT ANIMAL_ID, NAME FROM ANIMAL_INS WHERE INTAKE_CONDITION= 'Sick' ORDER BY ANIMAL_ID; 4. 어린 동물 찾기 SELECT ANIMAL_ID, NAME FROM ANIMAL_INS WHERE intake_condition !='aged' ORD..
-
[프로그래머스]입양 시각 구하기(Lv.4)SQL 2023. 4. 12. 15:47
보호소에서는 몇 시에 입양이 가장 활발하게 일어나는지 알아보려 합니다. 0시부터 23시까지, 각 시간대별로 입양이 몇 건이나 발생했는지 조회하는 SQL문을 작성해주세요. 이때 결과는 시간대 순으로 정렬해야 합니다. 먼저, 전체 테이블 구조 확인을 했다. 문제에서 각 컬럼에 대해서 알려주지만, 직접 보는 것이 더 와닿는다. SELECT * FROM ANIMAL_OUTS; Date time은 yyyy-mm-dd 00:00:00 형식으로 되어있었다. 2013-12-22 11:30:00 우리에게 필요한 것은 '시간대' 2자리 숫자 뿐이다. 24시간으로 되어있다. 시간대를 구한다음 각 시간대를 COUNT 함수를 쓰면 될 것 같다. 날짜 형식을 바꾸기 위해서는 DATE_FORMAT 을 사용하면 된다고 한다. htt..
-
[프로그래머스]우유와 요거트가 담긴 장바구니(Lv.4)SQL 2023. 4. 12. 00:33
데이터 분석 팀에서는 우유(Milk)와 요거트(Yogurt)를 동시에 구입한 장바구니가 있는지 알아보려 합니다. 우유와 요거트를 동시에 구입한 장바구니의 아이디를 조회하는 SQL 문을 작성해주세요. 이때 결과는 장바구니의 아이디 순으로 나와야 합니다. 가장 먼저 테이블을 확인해보니 아이템들이 분리되어 있어서 일단 합치는 것이 필요하다고 생각했다. 검색해보니 group_concat을 사용하면 된다고 나왔다. group_concat을 사용하여 여러 열에 있는 cart에 담긴 아이템들을 한 줄로 묶고, 거기에 milk와 yogurt가 들어있는 cart_id를 추출하려고 했다. SELECT cart_id, group_concat(name) as name FROM cart_products WHERE name in..
-
[프로그래머스]식품분류별 가장 비싼 식품의 정보 조회하기(Lv.4)SQL 2023. 4. 10. 10:09
FOOD_PRODUCT 테이블에서 식품분류별로 가격이 제일 비싼 식품의 분류, 가격, 이름을 조회하는 SQL문을 작성해주세요. 이때 식품분류가 '과자', '국', '김치', '식용유' 인 경우만 출력시켜 주시고 결과는 식품 가격을 기준으로 내림차순 정렬해주세요. 첫 번째 시도는 실패. SELECT category, max(price) as MAX_PRICE , product_name FROM food_product GROUP BY category HAVING category IN ('과자', '국', '김치', '식용유') ORDER BY max_price DESC; 왜 실패했는지 다음의 블로그 글을 보고 알았다. https://sd23w.tistory.com/32 group by로 뽑아온 값중에 가장큰..