sql 14

[프로그래머스] 재구매가 일어난 상품과 회원 리스트 구하기(SQL)

문제http://school.programmers.co.kr/learn/courses/30/lessons/131536풀이(16분)SELECT USER_ID, PRODUCT_IDFROM ONLINE_SALEGROUP BY USER_ID, PRODUCT_IDHAVING COUNT(*) >= 2ORDER BY USER_ID ASC, PRODUCT_ID DESC;문제 풀이 전략 SELECT를 할 때, USER_ID와 PRODUCT_ID가 쓰인다.또한, 조건을 사용하는데 있어서도 동시에 쓰인다. 그렇기에 GROUP BY라는 절로 묶어준다.이후 HAVING절은 GROUP절의 WHERE절같은 느낌으로 사용되는 것이다.

[프로그래머스] 3월에 태어난 여성 회원 목록 출력하기(SQL)

문제https://school.programmers.co.kr/learn/courses/30/lessons/131120풀이(8분)SELECT MEMBER_ID, MEMBER_NAME, GENDER, DATE_FORMAT(DATE_OF_BIRTH, '%Y-%m-%d') AS DATE_OF_BIRTH FROM MEMBER_PROFILE MWHERE M.DATE_OF_BIRTH LIKE "%-03-%" AND M.GENDER = "W" AND M.TLNO IS NOT NULLORDER BY M.MEMBER_ID ASC;문제 풀이 전략 1. WHERE절에서 IS NOT NULL을 이용해 NULL인자를 제거할 수 있다.2. DATE_FORMAT를 통해 내가 원하는 날짜 출력을 지정할 수 있다. 자주 쓰이는 포맷 ..

[프로그래머스] 과일로 만든 아이스크림 고르기(SQL)

문제https://school.programmers.co.kr/learn/courses/30/lessons/133025풀이(4분)SELECT F.FLAVOR FROM FIRST_HALF FJOIN ICECREAM_INFO I ON F.FLAVOR = I.FLAVORWHERE F.TOTAL_ORDER > 3000 AND I.INGREDIENT_TYPE = "fruit_based"ORDER BY F.TOTAL_ORDER DESC;문제 풀이 전략 FIRST_HALF 테이블의 FLAVOR을 테이블에 보여줄 것이다.이 때 ICECREAM_INFO 테이블의 타입 정보를 이용해야하기 때문에 join을 해준다. 후에 조건을 맞추어 설정을 해준 뒤 내림차순으로 정렬한다.중요한 것은 SELECT를 할 때 두 테이블 모두 ..

[프로그래머스] 연도별 대장균 크기의 편차 구하기(SQL)

문제https://school.programmers.co.kr/learn/courses/30/lessons/299310풀이(20분)SELECT YEAR(D.DIFFERENTIATION_DATE) AS YEAR, F.MV-D.SIZE_OF_COLONY AS YEAR_DEV, D.IDFROM ECOLI_DATA AS D LEFT OUTER JOIN ( SELECT YEAR(E.DIFFERENTIATION_DATE) AS YEAR, MAX(E.SIZE_OF_COLONY) AS MV FROM ECOLI_DATA AS E GROUP BY YEAR(E.DIFFERENTIATION_DATE) ) AS F ON YEAR(D.DIFFERENTIATION_DATE) = F.YEARORDER ..

[프로그래머스] 진료과별 총 예약 횟수 출력하기(SQL)

문제https://school.programmers.co.kr/learn/courses/30/lessons/132202풀이(5분)-- 2022년 5월에 예약한 환자 수를 진료과코드 별로 조회하는 SQL문-- 컬럼명은 '진료과 코드', '5월예약건수'로 지정-- 진료과별 예약한 환자 수를 기준으로 오름차순 정렬하고, 예약한 환자 수가 같다면 진료과 코드를 기준으로 오름차순 정렬SELECT MCDP_CD AS '진료과 코드', COUNT(APNT_NO) AS '5월예약건수'FROM APPOINTMENTWHERE APNT_YMD BETWEEN '2022-05-01' AND '2022-05-31'GROUP BY MCDP_CDORDER BY COUNT(APNT_NO) ASC, MCDP_CD ASC;..

[프로그래머스] 조건에 맞는 도서와 저자 리스트 출력하기(SQL)

문제https://school.programmers.co.kr/learn/courses/30/lessons/144854풀이(15분)SELECT BOOK_ID, AUTHOR_NAME, DATE_FORMAT(PUBLISHED_DATE, '%Y-%m-%d') as PUBLISHED_DATEFROM (BOOK INNER JOIN AUTHOR ON BOOK.AUTHOR_ID = AUTHOR.AUTHOR_ID)WHERE CATEGORY = '경제'ORDER BY PUBLISHED_DATE; 날짜 형식을 맞추기 위해 DATE_FORMAT를 사용한다.inner join 을 통해 책의 저자 아이디와 저자 리스트의 아이디가 동일하고,카테고리가 경제인 경우에 대하여,출판일 기준으로 오름차순 출력한다.