전체 글 230

흉부외과 또는 일반외과 의사 목록 출력하기

DOCTOR 테이블에서 진료과가 흉부외과(CS)이거나 일반외과(GS)인 의사의 이름, 의사ID, 진료과, 고용일자를 조회하는 SQL문을 작성해주세요. 이때 결과는 고용일자를 기준으로 내림차순 정렬하고, 고용일자가 같다면 이름을 기준으로 오름차순 정렬해주세요. -- SELECT dr_name , dr_id , mcdp_cd , DATE_FORMAT(hire_ymd, '%Y-%m-%d') hire_ymd FROM doctor WHERE mcdp_cd = 'CS' OR 'GS' ORDER BY hire_ymd DESC, dr_name # SELECT DR_NAME , DR_ID , MCDP_CD , DATE_FORMAT(hire_ymd, '%Y-%m-%d') HIRE_YMD FROM doctor WHERE m..

SQL 코드카타 2024.03.22

1주차 [2024-03-18 ~ 22]

FACTS 사전 캠프 시작으로 한주를 시작! 사전 캠프는 오후 2시~6시 까지 이고, ZEP에 접속하여 팀원들과 함께 공부를 한다. 이번주에는 5명의 팀원중 나 포함 3명이 모였는데 다함께 공부를 하다 막힌 부분이 있거나 알려주고 싶은 부분이 있다면 서로 공유하면서 공부를 하였다! ADsP 시험 준비도 병행하고 있고 하루빨리 능숙해지고 싶으므로 오후 2시 전까지는 ADsP 공부를 했다. 이번주에는 SQL 1~5주차 강의를 들었는데 기본적으로는 하루에 1주차 강의를 듣고 TIL 작성과 프로그래머스에서 SQL코드카타 2~3문제씩 풀었다. FEELINGS 사전캠프 시작전 이게 잘한 선택인가? 하는 걱정이 스물스물 올라왔다. 궁금한 건 또 못참기 때문에 이것저것 검색을 해보았더니 과연 내가 할 수 있을까 하는 ..

WIL 2024.03.22

2024-03-22

1. 오늘 배운 것 테이블 내 데이터에 NULL 값이 있고, NULL 을 제외하거나, 사용해야할 경우 SELECT restaurant_name , AVG(rating) avg_rating -- null 을 포함해야할때 , AVG(IF(rating 'Not given', rating, NULL)) avg_rating2 -- null 을 제외해야할때 -- 필요에 따라 선택해서 사용 FROM food_orders GROUP BY 1 IF(rating 'Not given', rating, NULL) -- 자주 쓰는 문구 : rating 컬럼이 'Not given' 이면 rating 값을, 그게 아니라면 NULL 값 입력 AVG 함수는 NULL 값이 있을 경우 없는 것으로 계산한다.AVG(rating) avg_r..

TIL 2024.03.22

[SQL] LEFT JOIN 과 INNER JOIN 차이 2

지난번 답하지 못했던 질문을 이어서 작성 https://lyj-01.tistory.com/6 LEFT JOIN 과 INNER JOIN 차이식당별 평균 음식 주문 금액과 주문자의 평균 연령을 기반으로 Segmentation 하기 - 평균 음식 주문 금액 기준 : 5,000 / 10,000 / 30,000 / 30,000 초과 - 평균 연령 : ~ 20대 / 30대 / 40대 / 50대 이상 -- 내가 작성lyj-01.tistory.com  Q. 이 데이터 중에 왜 'wichcraft' 행만 출력이 되었는지?Q. GROUP BY 를 하지 않았을 경우 1개의 행만 추출을 하는데 왜일까?       Q. LEFT JOIN 한 값과, INNER JOIN 한 값은 어떤..

개인공부 2024.03.22

2024-03-21

1. 오늘 배운 것 날짜 추출 예시) 2022년 9월 데이터값 ① BETWEEN '2022-09-01' AND '2022-09-30' ② LIKE '2022-09%' ① 의 경우 30일과 31일을 잘못 작성할 경우 조회가 되지 않더라.. ② 의 경우 9월 이후의 값을 불러주기 때문에 훨씬 간편! 날짜 차이 구하기 MySQL 에서는 날짜 차이를 구하기 위해 DATEDIFF, TIMESTAMPDIFF 함수를 사용 간단하게 day 의 차이를 구할 때에는 DATEDIFF 함수를 사용 DATEDIFF(날짜1,날짜2) 날짜1 - 날짜2 TIMESTAMPDIFF(단위, 날짜1, 날짜2) SECOND: 초 MINUTE: 분 HOUR: 시 DAY: 일 WEEK: 주 MONTH: 월 QUARTER: 분기 YEAR: 연 2..

TIL 2024.03.21

자동차 대여 기록에서 장기/단기 대여 구분하기

CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블에서 대여 시작일이 2022년 9월에 속하는 대여 기록에 대해서 대여 기간이 30일 이상이면 '장기 대여' 그렇지 않으면 '단기 대여' 로 표시하는 컬럼(컬럼명: RENT_TYPE)을 추가하여 대여기록을 출력하는 SQL문을 작성해주세요. 결과는 대여 기록 ID를 기준으로 내림차순 정렬해주세요. SELECT history_id , car_id , SUBSTR(start_date, 1, 10) start_date , SUBSTR(end_date, 1, 10) end_date , CASE WHEN CAST((end_date) AS decimal) - CAST((start_date) AS decimal) >= 30 THEN '장기대여' ELSE ..

SQL 코드카타 2024.03.21

조건에 맞는 도서 리스트 출력하기

BOOK 테이블에서 2021년에 출판된 '인문' 카테고리에 속하는 도서 리스트를 찾아서 도서 ID(BOOK_ID), 출판일 (PUBLISHED_DATE)을 출력하는 SQL문을 작성해주세요. 결과는 출판일을 기준으로 오름차순 정렬해주세요. SELECT book_id , DATE_FORMAT(published_date, '%Y-%m-%d') PUBLISHED_DATE FROM book WHERE published_date BETWEEN '2021-01-01' AND '2021-12-31' AND category = '인문' ORDER BY published_date + 어제 코드카타 하면서 공부했던 DATE_FORMAT 함수를 사용해보았다 Q. DATE_FORMAT 의 사용법은 어떻게 될까? A. %Y 20..

SQL 코드카타 2024.03.20