본문 바로가기

분류 전체보기17

[SQL Lv4] 특정 세대의 대장균 찾기 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr문제 해석3레벨 노드의 개체 ID를 출력하는 문제. 문제 해결계층형 쿼리로 푸려고 했으나 SQL문법에서는 START WITH랑 CONNECT BY절을 지원하지 않아 JOIN으로 해결했다.INNER JOIN으로 각 레벨별 계층을 만들어서 3레벨 노드랑 JOIN시키는 형태로 풀었다. SELECT ED3.IDFROM ECOLI_DATA AS ED1INNER JOIN ECOLI_DATA AS ED2ON ED1.ID = ED2.PARENT_ID AND ED1.PARENT_ID IS NULLINNER JOIN ECOLI_DATA ED3ON ED2.ID = ED3.PAR.. 2024. 11. 18.
[SQL Lv3] 대장균의 크기에 따라 분류하기 1 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제 해설스칼라 서브쿼리를 통해 푸는문제이다.서브쿼리 내에서 where절로 ID값이 일치한지 먼저 뽑아낸다음 CASE문으로 SIZE를 조회해서 각 사이즈에 맞게 출력하면 된다. SELECT A.ID, (SELECT CASE WHEN B.SIZE_OF_COLONY 2024. 11. 18.
[SQL Lv3] 대장균들의 자식 수 구하기 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 문제 해석1. 대장균 개체의 ID와 자식의 수를 출력하는 SQL문을 작성해야한다.2. 스칼라 서브쿼리로 부모의 ID와 자식의 PARENT_ID가 같을 경우 COUNT를 세기로했다. SELECT A.ID,( SELECT COUNT(*) FROM ECOLI_DATA B WHERE A.ID = B.PARENT_ID) AS CHILD_COUNTFROM ECOLI_DATA A; 2024. 11. 14.
[SQL Lv4] 오프라인/온라인 판매 데이터 통합하기 문제 해석1. 오프라인 데이터와 온라인 데이터를 통합2. 2022년 3월 데이터만 출력3. 상품 판매 일, 상품 ID, 유저 ID 순으로 내림차순 정렬 문제 풀이1. UNION을 사용해서 온라인, 오프라인 데이터를 통합한 테이블을 만든다.2. 서브쿼리를 활용해 위에서 만든 테이블을 인라인 뷰에서 활용한다.3. 판매일이 2022-03-01일부터 2022-03-31일 인 데이터를 뽑는다.4. 정렬한다. SELECT DATE_FORMAT(SALES_DATE,'%Y-%m-%d') AS SALES_DATE, PRODUCT_ID, USER_ID, SALES_AMOUNTFROM ( SELECT SALES_DATE, PRODUCT_ID, USER_ID, SALES_AMOUNT FROM ONLINE_SALE UNIO.. 2024. 11. 14.
[SQL Lv4] 서울에 위치한 식당 목록 출력하기 문제 해석 1. 리뷰테이블에서 "서울"에 위치한 식당 정보를 출력한다.2. 이때 리뷰 평균점수는 소수점 세번째 자리에서 반올림한다.3. 결과는 평균점수를 기준으로 내림차순, 그렇지 않다면 즐겨찾기수를 기준으로 내림차순한다. 문제 풀이1. 리뷰테이블과 식당 테이블을 INNER JOIN한다.2. "%서울"로 LIKE연산자를 사용해서 ADDRESS를 추출3. ROUND함수를 사용해서 AVG(리뷰.점수,2)으로  세번째 자리까지 평균 점수를 반올림한다. SELECT R.REST_ID, R.REST_NAME,R.FOOD_TYPE, R.FAVORITES,R.ADDRESS, ROUND(AVG(S.REVIEW_SCORE),2) AS SCORE FROM REST_INFO R INNER JOIN REST_REV.. 2024. 11. 14.