본문 바로가기

SQL프로그래머스 문제풀이

(20)
SQL프로그래머스 문제풀이 -취소되지 않은 진료 예약 조회하기 SELECT A.APNT_NO, P.PT_NAME, P.PT_NO, A.MCDP_CD, D.DR_NAME, A.APNT_YMDfrom APPOINTMENT as Aleft join PATIENT as pon A.PT_NO = p.PT_NOleft join DOCTOR as Don A.MDDR_ID = D.DR_IDwhere A.apnt_ymd like '2022-04-13%' and A.MCDP_CD = 'CS' and A.apnt_cncl_yn = 'N'order by A.APNT_YMD asc이문제를 풀면서 있었던 이슈는 join을 하면서 유니크코드가 아닌 MCCP_CD를 합치면서 있었다유니크 코드인  pt넘버 dtid를 합치지않고 MCCP_CD 진료과 코드를 합치면서 값이 중복이되었다
SQL 프로그래머스 문제 - 조건에 맞는 사용자 정보 조회하기 SELECT u.user_id as USER_ID ,NICKNAME ,CONCAT(CITY,' ',STREET_ADDRESS1,' ',STREET_ADDRESS2) AS 전체주소 ,CONCAT(SUBSTRING(TLNO,1,3),'-',SUBSTRING(TLNO,4,4),'-',SUBSTRING(TLNO,8,4)) AS 전화번호 FROM USED_GOODS_USER as u inner join USED_GOODS_BOARD as b on u.user_id = b.WRITER_ID group by 1 having count(u.user_id) >=3 order by u.user_id DESCSQL에서 CONCAT 함수는 문자열을 연결하는 데 사용conca..
sql 프로그래머스 문제풀이 - 재구매가 일어난 상품과 회원 리스트 구하기 GROUP BY에 두가지이상의 칼럼을 넣을때 생기는일 먼저 앞선 USER_ID칼럼에 이어 PRODUCT_ID까지 세트로 묶이게된다SELECT user_id, PRODUCT_IDfrom ONLINE_SALEgroup by user_id, PRODUCT_IDHAVING COUNT(USER_ID) >= 2ORDER BY USER_ID, PRODUCT_ID DESC#SELECT에 출력할칼럼 표기 #group by user_id, PRODUCT_ID기준으로 group #having에 USER_ID가 2이상인것만 출력 #ORDER BY에 USER_ID, PRODUCT_ID로 내림차순 정리
SQL 프로그래머스 문제 풀이 -식품분류별 가장 비싼 식품의 정보 조회하기 SELECT CATEGORY, price as MAX_PRICE, PRODUCT_NAMEFROM FOOD_PRODUCTwhere (CATEGORY, price)in(SELECT CATEGORY, max(price)from FOOD_PRODUCTwhere CATEGORY IN ('과자','국','김치','식용유')group by CATEGORY)order by MAX_PRICE DESC;#서브쿼리에 카테고리별로 가장큰 price지정 #서브쿼리 where category 에 in절사용 과자, 국, 김치, 식용유만 넣어주고 #주쿼리 출력할 칼럼값명시 #where에 겹치는 칼럼명시그리고 in #order vy에 max_price대로내림차순
SQL프로그래머스 문제풀이 -3월에 태어난 여성 회원 목록 출력하기 SELECT MEMBER_ID, MEMBER_NAME, GENDER, DATE_FORMAT(DATE_OF_BIRTH,'%Y-%m-%d')from MEMBER_PROFILEwhere MONTH(DATE_OF_BIRTH) = 03 and GENDER ='W' and TLNO is not nullorder by MEMBER_ID ASC#출력할 칼럼작성 #테이블작성 # where에 month 항수써서 DATE_OF_BIRTH03이면 출력 그리고 GENDER 가 W면 출력 TLNO null이면 출력 #orderby에 MEMBER_ID ASC로 정리
SQL프로그래머스 문제풀이 - 조건에 맞는 사용자와 총 거래금액 조회하기 SELECT USER_ID, NICKNAME, sum(PRICE) as TOTAL_SALESfrom USED_GOODS_BOARD as Binner join USED_GOODS_USER as Uon B.WRITER_ID = U.USER_IDwhere STATUS = 'DONE'group by USER_IDhaving TOTAL_SALES >= 700000order by TOTAL_SALES#SELECT 에 출력할칼럼작성 #FROM, inner join, on으로 데이터를 합쳐주고 별칭을 지정해준다 on을 사용한 이유 합칠칼럼의 이름이 다르다 #status칼럼이 done인 것을 조건화해주고 #USER_ID 별로 볼거니까 group by 해준다 #having에 TOTAL_SALES 700000이상인 칼럼 조..
SQL 프로그래머스 문제풀이 -평균 일일 대여 요금 구하기 SELECT round(avg(daily_fee)) as AVERAGE_FEEfrom CAR_RENTAL_COMPANY_CARwhere car_type = 'SUV' #round 함수 소수 첫 번쨰 자리에서 반올림해준다 #where 절 car type SUV로 바꿔주고 #form 절 테이블지정
SQL 프로그래머스 문제풀이 -조건에 맞는 도서 리스트 출력하기 #YEAR 조건함수 달력형태의 칼럼에 YEAR로 괄호를 씌워주면 년만 비교할수있다  SELECT BOOK_ID, DATE_FORMAT(published_date, '%Y-%m-%d') as PUBLISHED_DATEfrom BOOKwhere YEAR(published_date)=2021 and CATEGORY = '인문'order by PUBLISHED_DATE#SELECT 에 뽑고싶은 칼럼제시 #from 테이블설정 #where 조건설정 published_date에 YEAR만 21로 비교 그리고 CATEGORY가 인문인것  # order by PUBLISHED_DATE 오름차순 정리