개발 101

프로그래머스SQL_물고기 종류 별 대어 찾기

■ 사용 문법 GROUP BY, JOIN ■ 사용 방법1) 길이가 제일 긴 물고기를 GROUP BY를 이용해서 찾아준다.2) 길이가 제일 긴 물고기의 ID를 찾아준다.3) 길이가 제일 긴 물고기의 NAME을 JOIN을 이용해서 찾아준다. ■ 코드-- 코드를 작성해주세요SELECT R.ID, N.FISH_NAME AS FISH_NAME, R.LENGTHFROM( SELECT ID, A.FISH_TYPE AS FISH_TYPE, A.LENGTH AS LENGTHFROM FISH_INFO AS A, (SELECT FISH_TYPE, MAX(LENGTH) AS LENGTHFROM FISH_INFOGROUP BY FISH_TYPE) AS BWHERE A.FISH_TYPE = B.FISH_TYPE AND A...

개발/SQL 2024.07.22

프로그래머스SQL_오랜 기간 보호한 동물(1)

■ 사용 문법 LEFT (OUTER) JOIN ■ 사용 방법1) INS 테이블 기준으로 LEFT (OUTER) JOIN을 한다.2) INS에만 있는 칼럼을 OUTS에서 찾을 수 없어야 하므로 OUTS에서 NULL 값을 찾아준다. 3) 입양 날짜 순서로 정렬을 한다음 limt 3으로 3개만 뽑아준다.  ■ 코드-- 코드를 입력하세요SELECT I.NAME, I.DATETIMEFROM ANIMAL_INS AS ILEFT JOIN ANIMAL_OUTS AS OON I.ANIMAL_ID = O.ANIMAL_IDWHERE O.ANIMAL_ID IS NULLORDER BY I.DATETIME LIMIT 3

개발/SQL 2024.07.17

프로그래머스SQL_특정 조건을 만족하는 물고기별 수와 최대 길이 구하기

■ 사용 문법 GROUP BY, AVG, MAX, HAVING, IFNULL  ■ 사용 방법1) FISH_TYPE으로 GROUP BY 한다.2) HAVING으로 집계함수 AVG의 조건을 충족시킨다. 3) 이 때, NULL은 10으로 치환해서 AVG를 구해준다. 4) FISH_COUNT와, LENGTH 최대값, FISH_TYPE을 차례대로 구해준다. ■ 코드-- 코드를 작성해주세요SELECT COUNT(*) AS FISH_COUNT, MAX(LENGTH) AS MAX_LENGTH, FISH_TYPEFROM FISH_INFOGROUP BY FISH_TYPEHAVING AVG(IFNULL(LENGTH, 10)) >= 33ORDER BY FISH_TYPE

개발/SQL 2024.06.26

프로그래머스SQL_조건에 맞는 사원 정보 조회하기(LIMIT)

■ 사용 문법 GROUP BY, LIMIT  ■ 사용 방법1) EMP_NO로 GROUP BY를 해준 후 2022년도 상반기, 하반기의 점수를 합해준다. 2) 합해준 것과 EMPLOYEE 테이블을 조인시켜준다. 3) 높은 점수로 정렬을 한 후 LIMIT을 이용해 제일 상위에 있는 행을 추출한다. ■ 코드SELECT M.SCORE, M.EMP_NO, E.EMP_NAME, E.POSITION, E.EMAILFROM HR_EMPLOYEES AS EJOIN(SELECT EMP_NO, SUM(SCORE) AS SCOREFROM HR_GRADE WHERE YEAR = 2022GROUP BY EMP_NO) AS MON E.EMP_NO = M.EMP_NOORDER BY M.SCORE DESCLIMIT 1

개발/SQL 2024.06.19

프로그래머스SQL_입양 시각 구하기(2)(WITH RECURSIVE)

■ 사용 문법 WITH RECURSIVE  ■ 사용 방법아무 생각없이 HOUR로 그룹핑을 해주고 COUNT를 제출했는데, 틀렸다. 문제를 다시보니 0건 이더라도 0시부터 23시까지 다 나와야 한다. 그래서 재귀를 이용해서 풀었다. 1) WITH RECURSIVE 로 임시 테이블 만들기 WITH RECURSIVE cte_name AS ( -- Anchor member initial_query UNION ALL -- Recursive member recursive_query)SELECT * FROM cte_name;#cte_name: CTE(Common Table Expression)의 이름입니다.#initial_query: 재귀가 시작되는 기본 쿼리(앵커 멤버)입니다.#recur..

개발/SQL 2024.06.17

프로그래머스SQL_년, 월, 성별 별 상품 구매 회원 수 구하기

■ 사용 문법 JOIN, GROUP BY, DISTINCT  ■ 사용 방법1. 두 테이블을 조인한다. 2. SALES_DATE에서 년,월을 뽑고, GENDER으로 GROUP BY 해준다. 3. 연, 월, 성별 기준으로 USER_ID의 COUNT를 구한다. 4. 구매한 회원 수이므로 회원이 구별되도록 해줘야 한다. DISTINCT 를 이용해서 COUNT를 세준다.  ■ 코드-- 코드를 입력하세요SELECT YEAR(S.SALES_DATE) AS YEAR, MONTH(S.SALES_DATE) AS MONTH, U.GENDER, COUNT(DISTINCT U.USER_ID) AS USERSFROM USER_INFO AS UJOIN ONLINE_SALE AS SON U.USER_ID = S.USER_IDWHER..

개발/SQL 2024.06.14