반응형

프로그래머스 74

[MYSQL] PROGRAMMERS_조건에 맞는 회원수 구하기

SELECT count(USER_ID) as USERS FROM USER_INFO WHERE 1=1 AND JOINED like '2021%' AND AGE between 20 and 29 USER_ID, GENDER, AGE, JOINED는 각각 회원 ID, 성별, 나이, 가입일을 나타냄 문제 USER_INFO 테이블에서 2021년에 가입한 회원 중 나이가 20세 이상 29세 이하인 회원이 몇 명인지 출력하는 SQL문을 작성 2가지의 조건을 만족하는 USER 데이터의 수를 조회 하는 문제이다. 2021년 데이터는 like '2021%' 를 통해 2021을 앞자리로 가지는 날짜 데이터를 필터링 해주었고 나이는 20세에서 29세의 범위 데이터로 between 구문을 통해 필터 처리 해주었다. 이 데이터의 ..

[MYSQL] PROGRAMMERS_이름이 없는 동물의 아이디

SELECT ANIMAL_ID FROM ANIMAL_INS WHERE 1=1 AND NAME IS NULL ORDER BY 1 ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부 이름이 없는 채로 들어온 동물의 ID를 조회하는 SQL 문을 작성 해당 문제는 IS NULL 구문을 통해 값이 조회 되지 않는 데이터를 추출 하는 문제로 IS NULL 을 처리를 통해 구하였다.

[MYSQL] PROGRAMMERS_경기도에 위치한 식품창고 목록 출력하기

SELECT WAREHOUSE_ID,WAREHOUSE_NAME,ADDRESS, IFNULL(FREEZER_YN,'N') as FREEZER_YN FROM FOOD_WAREHOUSE WHERE 1=1 AND WAREHOUSE_NAME like "%경기%" ORDER BY WAREHOUSE_ID WAREHOUSE_ID, WAREHOUSE_NAME, ADDRESS, TLNO, FREEZER_YN는 창고 ID, 창고 이름, 창고 주소, 전화번호, 냉동시설 여부를 의미 테이블에서 경기도에 위치한 창고의 ID, 이름, 주소, 냉동시설 여부를 조회하는 SQL문을 작성하고.냉동시설 여부가 NULL인 경우, 'N'으로 출력 결과는 창고 ID를 기준으로 오름차순으로 정렬하는 문제이다. IFNULL 함수의 경우 (컬럼, N..

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

SELECT DR_NAME,DR_ID,MCDP_CD,DATE_FORMAT(HIRE_YMD,'%Y-%m-%d') FROM DOCTOR WHERE 1=1 AND MCDP_CD = "CS" OR MCDP_CD = "GS" ORDER BY HIRE_YMD desc, DR_NAME DR_NAME, DR_ID, LCNS_NO, HIRE_YMD, MCDP_CD, TLNO는 각각 의사이름, 의사ID, 면허번호, 고용일자, 진료과코드, 전화번호를 나타냄 흉부외과 또는 일반외과를 조회하는 데이터를 구하고 결과는 고용일자를 기준으로 내림차순 정렬하고, 고용일자가 같다면 이름을 기준으로 오름차순 정렬해야하는 문제이다. 흉부외과는 CS 일반 외과는 GS로 두가지를 OR 조건으로 조회 해야한다. 따라서 WHERE 조건절에서 CS..

[MYSQL] PROGRAMMERS_강원도에 위치한 생산공장 목록 출력하기

SELECT FACTORY_ID,FACTORY_NAME,ADDRESS FROM FOOD_FACTORY WHERE 1=1 AND left(ADDRESS,3) = "강원도" ORDER BY FACTORY_ID FACTORY_ID, FACTORY_NAME, ADDRESS, TLNO는 각각 공장 ID, 공장 이름, 주소, 전화번호를 의미 ADDRESS 컬럼의 데이터가 '강원도 정선군 남면 칠현로 679' 와 같이 되어 있다. 따라서 맨 왼쪽 3글자의 데이터를 추출하여 사용하면 "강원도" 소재의 공장 데이터를 추출 가능하다 또다른 방법으로는 ADDRESS LIKE :"강원도%" 를 사용하여도 무방하다. + 다른 풀이에 언급해 두지않아 추가로 말하자면 ORDER BY 절 컬럼명 뒤에 아무것도 입력하지 않을시 Def..

[MYSQL] PROGRAMMERS_어린 동물 찾기

SELECT ANIMAL_ID, NAME from ANIMAL_INS where 1=1 and INTAKE_CONDITION 'Aged' order by 1 ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부 INTAKE_CONDITION이 "AGED" 인경우 나이가 든 동물이라는 조건이 붙어 있으므로 해당 컬럼에 AGED가 입력된 데이터를 제외 해준다. 따라서 'AGED' 를 통해 제외 하여 데이터를 추출해 준다. : 같지 않다.

[MYSQL] PROGRAMMERS_역순 정렬하기

SELECT NAME, DATETIME From ANIMAL_INS where 1=1 order by ANIMAL_ID desc ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냄 결과를 동물이름 역순으로 보여 주는것이 과제로 마지막 order by ANIMAL_ID 이후 desc 를 추가하여 역순 정렬

[MYSQL] PROGRAMMERS_아픈동물 찾기

SELECT ANIMAL_ID, NAME from ANIMAL_INS where 1=1 and INTAKE_CONDITION = 'Sick' order by 1 ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부 INTAKE_CONDITION이 컨디션 여부를 나타내며 해당 컬럼이 Sick 인 데이터를 출력하기 위해 문자 검색 'SICK' 를 WHERE 문에서 필터하여 추출

[MYSQL] PROGRAMMERS_상위 n개 레코드

SELECT NAME from ANIMAL_INS order by DATETIME limit 1 ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부 나타냄 MY SQL 에서는 limit가 ORACLE의 ROW NUM을 담당하여 ORDER BY 구문 이후에 쓰면 정렬 된 순으로 limit 'n' 의 n 번째 까지 데이터를 출력해 동일한 역할을 해준다 따라서 위 SQL 구문으로 동물 보호소에 가장 먼저 들어온 동물의 이름을 조회 할 수 있다.

반응형