프로그래머스 | SQL 스터디 19 (재귀적 CTE) (완)
·
SQL/프로그래머스
SELECT⭐특정 세대의 대장균 찾기(Lv4)문제 설명​문제​풀이출처 :  https://20240228.tistory.com/258 이 문제를 Self join을 2번해서 (노가다) 풀었지만 더 좋은 풀이법이 있어서 출처를 남기고 올립니다. WITH에서 GNEREATION을 설정합니다 1세대의 경우, PARENT_ID가 NULL인 것이 1세대 입니다.UNION ALL로 중복이 없게 합치고추가적으로 PARENT_ID를 가지는 ID를 JOIN해서 세대를 추가합니다. 이렇게 푸는 것이 더 좋은 이유는 유지, 보수 측면에서 더 용이하기 때문입니다.세대라는 칼럼을 추가해서 향후에도 세대를 찾고 싶을때 더 편하게 찾을 수 있죠WITH RECURSIVE CTE AS ( SELECT ID, 1 AS GENERA..
프로그래머스 | SQL 스터디 18
·
SQL/프로그래머스
SELECT부모의 형질을 모두 가지는 대장균 찾기(Lv2)문제 설명​문제​풀이SELECT로 ID, GENOTYPE, PARENT_GENOTYPE를 조회 JOIN에서 PARENT_ID를 가지는 테이블(부모가 있는 ID)을 self-join으로 연결 WHERE에서 E.GENOTYPE과 D.GENOTYPE을 비트 연산자를 한 값이 D.GENOTYPE으로 설정(부모의 형질을 모두 가지는 개체를 찾기 위한 쿼리) ORDER BY 에서 ID로 오름차순 정렬SELECT E.ID, E.GENOTYPE, D.GENOTYPE PARENT_GENOTYPEFROM ECOLI_DATA EJOIN ECOLI_DATA D ON E.PARENT_ID = D.IDWHERE (D.GENOTYPE & E.GENOTYPE) = D.GENO..
프로그래머스 | SQL 스터디 10
·
SQL/프로그래머스
SELECT재구매가 일어난 상품과 회원 리스트 구하기 (Lv2)문제 설명​문제 ONLINE_SALE 테이블에서 동일한 회원이 동일한 상품을 재구매한 데이터를 구하여, 재구매한 회원 ID와 재구매한 상품 ID를 출력하는 SQL문을 작성해주세요. 결과는 회원 ID를 기준으로 오름차순 정렬해주시고 회원 ID가 같다면 상품 ID를 기준으로 내림차순 정렬해주세요. ​풀이SELECT로 회원 ID, 상품 ID 를 조회 GROUP BY에서 회원 ID, 상품 ID로 그룹화 HAVING에서 개수가 1보다 큰 것으로 지정 ORDER BY에서 회원 ID는 오름차순, 상품 ID는 내림차순 정렬SELECT USER_ID,PRODUCT_IDFROM ONLINE_SALEGROUP BY USER_ID, PRODUCT_IDHAVING ..
프로그래머스 | SQL 스터디 9
·
SQL/프로그래머스
SELECT강원도에 위치한 생산공장 목록 출력하기(Lv1)문제 설명​문제FOOD_FACTORY 테이블에서 강원도에 위치한 식품공장의 공장 ID, 공장 이름, 주소를 조회하는 SQL문을 작성해주세요. 이때 결과는 공장 ID를 기준으로 오름차순 정렬해주세요.​풀이SELECT로 공장 ID, 공장 이름, 주소를 조회​WHERE에서 강원도를 지정하기 위해 LIKE문을 활용SELECT FACTORY_ID, FACTORY_NAME, ADDRESSFROM FOOD_FACTORYWHERE ADDRESS LIKE '강원도%'; SUM, MAX, MIN잡은 물고기 중 가장 큰 물고기의 길이 구하기(Lv1)문제 설명​문제FISH_INFO 테이블에서 잡은 물고기 중 가장 큰 물고기의 길이를 'cm' 를 붙여 출력하는 SQL 문..
프로그래머스 | SQL 스터디 4
·
SQL/프로그래머스
SELECT조건에 맞는 도서 리스트 출력하기(Lv1)문제 설명​문제BOOK 테이블에서 2021년에 출판된 '인문' 카테고리에 속하는 도서 리스트를 찾아서 도서 ID(BOOK_ID), 출판일 (PUBLISHED_DATE)을 출력하는 SQL문을 작성해주세요. 결과는 출판일을 기준으로 오름차순 정렬해주세요.​풀이SELECT로 도서ID, 출판날짜를 조회결과에서 출판날짜의 형식이 다르기 때문에 DATE_FORMAT으로 형식 변환​WHERE문에서 출판년도 2021년, 카테고리는 인문으로 설정​ORDER BY에서 출판날짜를 오름차순 정렬SELECT BOOK_ID, DATE_FORMAT(PUBLISHED_DATE,'%Y-%m-%d') PUBLISHED_DATEFROM BOOKWHERE PUBLISHED_DATE LIK..
프로그래머스 | SQL 스터디 3
·
SQL/프로그래머스
SELECT평균 일일 대여 요금 구하기(Lv1)문제 설명​문제CAR_RENTAL_COMPANY_CAR 테이블에서 자동차 종류가 'SUV'인 자동차들의 평균 일일 대여 요금을 출력하는 SQL문을 작성해주세요. 이때 평균 일일 대여 요금은 소수 첫 번째 자리에서 반올림하고, 컬럼명은 AVERAGE_FEE 로 지정해주세요.​풀이SELECT로 평균 일일 대여 요금은 소수 첫 번째 자리에서 반올림하고, 컬럼명은 AVERAGE_FEE 로 지정AVG(DAILY_FEE)를 ROUND( ,0)의 빈칸에 넣고 칼럼명 AVERAGE_FEE로 지정​WHERE문에서 CAR_TYPE ='SUV'로 차의 종류 설정SELECT ROUND( AVG(DAILY_FEE) ,0) AS AVERAGE_FEEFROM CAR_RENTAL_COM..
프로그래머스 | SQL 스터디 2
·
SQL/프로그래머스
SELECT흉부외과 또는 일반외과 의사 목록 출력하기(Lv1)문제DOCTOR 테이블에서 진료과가 흉부외과(CS)이거나 일반외과(GS)인 의사의 이름, 의사ID, 진료과, 고용일자를 조회하는 SQL문을 작성해주세요. 이때 결과는 고용일자를 기준으로 내림차순 정렬하고, 고용일자가 같다면 이름을 기준으로 오름차순 정렬해주세요.​풀이SELECT로 ​의사의 이름, 의사ID, 진료과, 고용일자를 조회여기서 HIRE_YMD는 DATE_FORMAT으로 형식 변경해주기!​WHERE문에서 원하는 진료과를 입력 WHERE MCDP_CD IN ('CS', 'GS')​ORDER BY에서 고용일자를 기준으로 내림차순 정렬하고, 고용일자가 같다면 이름을 기준으로 오름차순 정렬SELECT DR_NAME, DR_ID, MCDP_CD,..
프로그래머스 | SQL 스터디 1 (IFNULL, USING)
·
SQL/프로그래머스
프로그래머스에 있는 SQL 코딩테스트의 문제들을 각 챕터별로 1개씩 풀고 각자 파트를 나눠 문제에 대한 풀이를 하고 더 나은 쿼리를 짜는 방법을 공부하기 위해 SQL 스터디를 시작하게 되었습니다. 24.03.26일 부터 스터디 시작~! ​SELECT3월에 태어난 여성 회원 목록 출력하기(Lv2)문제MEMBER_PROFILE 테이블에서 생일이 3월인 여성 회원의 ID, 이름, 성별, 생년월일을 조회하는 SQL문을 작성해주세요. 이때 전화번호가 NULL인 경우는 출력대상에서 제외시켜 주시고, 결과는 회원ID를 기준으로 오름차순 정렬해주세요.​풀이SELECT로 ID, 이름, 성별, 생년월일을 조회여기서 DATE_OF_BRITH는 DATE_FORMAT으로 형식 변경해주기!​WHERE문에서 요구하는 전화번호가 N..