전체 글 136

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

일상을 기획하다, 롯데백화점 주차장

최근 롯데백화점에 갔던 경험을 나누고 싶습니다.해당 지점은 롯데마트와 연결되어 있어, 백화점은 저녁 8시 30분에 문을 닫지만, 주차장은 마트 운영 시간까지 이용할 수 있었습니다. 롯데마트를 이용하여 주차장을 가던 중, 벽에 주차 위치 번호가 적혀 있는 안내표를 발견했습니다. 주차 위치를 잊어버리지 않기 위해 사진을 찍어 놓았던 저는 안내표를 확인했지만, 찍어둔 사진의 주차 위치 번호가 안내표에 없다는 것을 알게 되었습니다. 뭔가 잘못되었다는 생각에 한 층 더 내려갔지만, 역시 아니어서 다시 원래 층으로 올라왔습니다. 결국, 안내표를 무시하고 주차장을 돌아다니다가 어렵지 않게 제 차를 찾을 수 있었습니다. 이 경험을 통해 주차 위치를 쉽게 찾게 하기 위해 붙여놓은 안내 표시가 오히려 더 혼란을 주는 상황..

기획 2024.07.17

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