전체 글 140

프로그래머스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

프로그래머스SQL_저자 별 카테고리 별 매출액 집계하기

■ 사용 문법    GROUP BY, JOIN, 집계함수 SUM    ■ 사용 방법    1. 우선 세 개의 테이블을 조인한다.2. 조건에 맞게 필터링 해준다.(2022년 1월)3. 문제에 보면 저자별, 카테고리 별 매출액이라 했으므로 AUTHOR_ID, CATEGORY 로 GROUP BY 해준다. 4. 집계함수 SUM으로 BOOK의 PRICE와 BOOK_SALES의 SALES를 곱해준 다음 더해준다. (SUM(BOOK.PRICE * BOOK_SALES.SALES)5. 정렬 후 마무리  ■ 코드    SELECT A.AUTHOR_ID, A.AUTHOR_NAME,B.CATEGORY , SUM(B.PRICE * S.SALES) AS TOTAL_SALESFROM BOOK AS BJOIN AUTHOR AS A..

개발/SQL 2024.06.13

프로그래머스SQL_식품분류별 가장 비싼 식품의 정보 조회하기

■ 사용 문법    GROUP BY, JOIN( GROUP BY 절은 그룹화 기준 컬럼(CATEGORY)과 집계 함수의 결과(MAX(PRICE))만 반환한다.)   ■ 사용 방법    1. GROUP BY 절은 그룹화 기준 컬럼과 집계 함수의 결과만 반환하다. 따라서, 아래와 같은 코드 실행 시 PRODUCT_NAME이 매칭되지 않은 값으로 나온다. SELECT CATEGORY, MAX(PRICE) as MAX_PRICE, PRODUCT_NAMEFROM FOOD_PRODUCT WHERE CATEGORY = "과자" OR CATEGORY = "국" OR CATEGORY = "김치" OR CATEGORY = "식용유"GROUP BY CATEGORYORDER BY MAX_PRICE DESC2. 이를 해결해주기..

개발/SQL 2024.06.07