sql 22

[MySQL] 프로그래머스 12세 이하인 여자 환자 목록 출력하기

문제:12세 이하인 여자환자의 환자이름, 환자번호, 성별코드, 나이, 전화번호를 조회- 전화번호가 없는 경우, 'NONE'으로 출력- 결과는 나이를 기준으로 내림차순 정렬하고, 나이 같다면 환자이름을 기준으로 오름차순 해결방법:1. SELECT 에서 전화번호가 없는 경우에 대해서 IFNULL() 로 처리2. WHERE 절에서 12세 이하, 여자 환자 조건 설정3. ORDER BY 로 정렬 순서 정하기 예시 코드:SELECT PT_NAME, PT_NO, GEND_CD, AGE, IFNULL(TLNO, "NONE") AS TLNOFROM PATIENTWHERE AGE

[SQL] 연습 2024.09.08

[MySQL] 프로그래머스 흉부외과 또는 일반외과 의사 목록

문제: 진료과가 흉부외과(CS)이거나 일반외과(GS)인 의사의 이름, 의사ID, 진료과, 고용일자를 조회하는 SQL문- 결과는 고용일자순 내림차수, 이름 오름차순 정렬- 고용일자는 'YYYY-mm-dd' 형식 해결방법:1. WHERE 절에서 진료과가 'CS' or 'GS' 만 출력하도록 함2. ORDER BY 로 고용일자 DESC, 이름 ASC3. DATE_FORMAT() 함수로 일자 출력 양식 변경 예시 답안:SELECT DR_NAME, DR_ID, MCDP_CD, DATE_FORMAT(HIRE_YMD, '%Y-%m-%d') AS HIRE_YMDFROM DOCTORWHERE MCDP_CD = 'CS' OR MCDP_CD = 'GS'ORDER BY HIRE_YMD DESC, DR_NAME ASC;

[SQL] 연습 2024.08.24

[MySQL] 프로그래머스 경기도에 위치한 식품창고 목록 출력하기

문제:FOOD_WAREHOUSE 테이블에서 경기도에 위치한 창고의 ID, 이름, 주소, 냉동시설 여부를 조회- 냉동시설 여부의 값이 NULL 인 경우 'N' 으로 출력- 창고는 경기도에 위치해야 함- ID 에 따른 오름차순 출력 해결방법:1. IFNULL() 함수를 사용해서 냉동시설 여부의 값이 NULL 인 경우 'N' 으로 출력하도록 처리2. WHERE 절에 LIKE 를 사용해서 이름에 '경기' 가 포함된 경우만 출력하도록 처리3. ORDER BY 로 오름차순 출력 예시 코드:SELECT WAREHOUSE_ID, WAREHOUSE_NAME, ADDRESS, IFNULL(FREEZER_YN, 'N') AS FREEZER_YNFROM FOOD_WAREHOUSEWHERE WAREHOUSE_NAME LIKE ..

[SQL] 연습 2024.08.18

[SQL] 프로그래머스 대장균들의 자식의 수 구하기

문제: 대장균 개체(ID)와 자식의 수(CHILD_COUNT)를 출력하는 SQL 작성- 자식이 없다면 자식의 수는 0으로 출력- 결과는 개체의 ID에 대해 오름차순 정렬 해결방법:1. ECOLI_DATA 테이블에서 'ID' 컬럼을 구한다 → 테이블에서의 전체 개체(ID) 출력2. ECOLI_DATA 테이블에서 GROUP BY 로 'PARENT_ID' 별 레코드 수 계산 → 각 PARENT 별 자식 수 카운트 가능3. 자식이 없는 ID 도 있으므로 1번 결과 테이블과 2번 결과 테이블을 LEFT OUTER JOIN 을 해서 모든 ID 에 대해 자식 수가 표시될 수 있도록 함.4. 이 때, 자식 수가 없는 경우 NULL 이므로 IFNULL() 규칙으로 처리해주면 된다. 코드 예시SELECT A.ID, IFN..

[SQL] 연습 2024.08.16

[solvesql] 지역별 주문의 특징

Q. region, category 별 주문량을 계산해 출력하는 쿼리를 작성해주세요. 결과 데이터는 아래와 같은 테이블 형태로 출력되어야 하고, Region 컬럼 기준 오름차순으로 정렬되어 있어야 합니다. - 문제 조건 확인 1. region, category 별 주문량을 계산 → group by 사용 2. 목표 테이블 형태 → pivot 테이블 형식으로 출력되도록 쿼리를 작성 3. Region 컬럼 기준 오름차순으로 정렬 → order by Region - 테이블 확인 - 풀이과정 1. 먼저 records table 을 확인한 후, region 만 추출 select region from records ; 2. CASE 문을 활용하여, category 가 Furniture 인 경우의 주문건수를 집계 - ..

[SQL] 연습 2022.10.20

[solvesql] 일별 블로그 방문자 수 집계

Q. 2021년 8월 2일부터 2021년 8월 9일까지 날짜별로 몇 명의 방문자가 방문했는지 알고 싶습니다. 해당 일자 내 로그 테이블에 이벤트가 하나라도 기록 된 경우 방문자로 집계합니다. 기간 별 방문자 수를 일별로 추출하는 쿼리를 작성해주세요. 결과 데이터에는 아래 2개 컬럼(dt - 방문일, users - 방문자수)이 들어가야하며, 방문일을 기준으로 오름차순 정렬되어있어야 합니다. - 문제 조건 확인 1. 2021년 8월 2일부터 2021년 8월 9일까지 날짜 → where date(~) >= date('2021-08-02') and date(~) = date('2021-08-02') and event_date_kst = date('2021-08-02') and event_date_kst

[SQL] 연습 2022.10.13

[solvesql] 복수 국적 메달 수상한 선수 찾기

Q. 2000년 이후의 메달 수상 기록만 고려했을 때, 메달을 수상한 올림픽 참가 선수 중 2개 이상의 국적으로 메달을 수상한 기록이 있는 선수의 이름을 조회하는 쿼리를 작성해주세요. 조회된 선수의 이름은 오름차순으로 정렬되어 있어야 합니다. - 문제 조건 확인 1. 2000년 이후의 올림픽 게임 기록만 사용 → where year >= 2000 2. 메달을 수상한 올림픽 참가 선수의 국적이 2개 이상 → where medal not null 사용 및 group by + count(distinct ~ ) 문 필요 예상 3. 조회된 선수의 이름은 오름차순 정렬 → order by name - 테이블 확인 - 풀이과정 1. records 테이블과 games 테이블을 조인, where 절 조건 추가 selec..

[SQL] 연습 2022.10.09

[책 서평] SQL로 시작하는 데이터 분석

데이터 분석 과정에서 SQL을 능숙하게 다룰 줄 아는 것은 중요한 역량이 되었습니다. 다만 출판되어 있는 SQL 관련 서적들은 대부분 기초적인 문법에 대해서만 다루고 있고, 분석을 위한 내용은 사실 많지 않은 것 같습니다. 그러나 최근에 데이터 분석에 관심도 있으면서 SQL 문법도 어느정도 기초적인 문법을 알고 있는 분들이 관심을 가질 만한 책이 출판되었는데, 한빛미디어에서 출판한 이라는 책입니다. 먼저 이 책에 대한 총평으로 시작하자면, SQL을 활용하는 능력을 한 단계 업그레이드 시키고, 실무에서 더 효율적인 분석 작업을 수행하는데 도움이 될 것이라고 생각합니다. 만약 SQL에 대한 기초적인 문법을 알고 있는 분들 중에서 SQL을 더 잘 활용해 보고 싶지만 어떻게 할 수 있을지 모르겠다면, 이 책이 ..

리뷰 2022.09.14

[mysql] 프로그래머스 보호소에서 중성화한 동물

오늘은 프로그래머스 sql 문제 중에 '보호소에서 중성화한 동물' 문제에 대해서 풀어보도록 하겠습니다. 문제 난이도는 Level 4 문제이고 JOIN을 사용하면 풀 수 있다고 합니다. 문제 풀이에 사용한 언어는 mysql입니다. 이제 문제를 확인해 보겠습니다. 문제 보호소에서 중성화 수술을 거친 동물 정보를 알아보려 합니다. 보호소에 들어올 당시에는 중성화되지 않았지만, 보호소를 나갈 당시에는 중성화된 동물의 아이디와 생물 종, 이름을 조회하는 아이디 순으로 조회하는 SQL 문을 작성해주세요. (중성화를 거치지 않은 동물은 성별 및 중성화 여부에 Intact, 중성화를 거친 동물은 Spayed 또는 Neutered라고 표시되어있습니다.) 풀이과정 일단 두 가지 큰 조건이 있습니다. 1. 보호소에 들어올 ..

[SQL] 연습 2022.07.17