반응형

프로그래머스 74

[MYSQL] PROGRAMMERS_고양이와 개는 몇 마리 있을까

SELECT ANIMAL_TYPE, count(ANIMAL_ID)count FROM ANIMAL_INS WHERE 1=1 AND ANIMAL_TYPE in ("DOG","CAT") GROUP BY ANIMAL_TYPE ORDER BY ANIMAL_TYPE ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다. 문제 동물 보호소에 들어온 동물 중 고양이와 개가 각각 몇 마리인지 조회하는 SQL문을 작성후 고양이를 개보다 먼저 조회 일단 개와 고양이 데이터만을 필터 해야하기에 in () 구문으로 ANIMAL_TYPE 에서..

[MYSQL] PROGRAMMERS_중성화 여부 파악하기

SELECT ANIMAL_ID, NAME, CASE WHEN SEX_UPON_INTAKE like 'Neutered%' then "O" WHEN SEX_UPON_INTAKE like "Spayed%" then "O" else "X" end as "중성화" FROM ANIMAL_INS ORDER BY 1 ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냄 문제 중성화된 동물은 SEX_UPON_INTAKE 컬럼에 'Neutered' 또는 'Spayed'라는 단어로 표기. 동물의 아이디와 이름, 중성화 여부를 아이디 순으로 ..

[MYSQL] PROGRAMMERS_카테고리 별 상품 개수 구하기

SELECT left(PRODUCT_CODE,2) as CATEGORY, COUNT(PRODUCT_ID) as PRODUCTS FROM PRODUCT group by 1 order by 1 PRODUCT_ID, PRODUCT_CODE, PRICE는 각각 상품 ID, 상품코드, 판매가를 나타냄 문제 PRODUCT 테이블에서 상품 카테고리 코드(PRODUCT_CODE 앞 2자리) 별 상품 개수를 출력하는 SQL문을 작성후 결과는 상품 카테고리 코드를 기준으로 오름차순 정렬 left와 case 구문을 써야하나 생각 했다가 간단하게 select 구문에서 left 구문을 써서 해결했다. PRODUCT_CODE의 왼쪽 2개 값을 가진 컬럼을 CATEGORY 컬럼으로 명하고 해당 컬럼을 기준으로 GROUP BY 하여..

[MYSQL] PROGRAMMERS_가격이 제일 비싼 식품의 정보 출력하기

/*SELECT PRODUCT_ID, PRODUCT_NAME, PRODUCT_CD, CATEGORY, MAX(PRICE) as PRICE FROM FOOD_PRODUCT*/ --1번째 답 SELECT PRODUCT_ID, PRODUCT_NAME, PRODUCT_CD, CATEGORY, PRICE FROM FOOD_PRODUCT ORDER BY PRICE desc l --2번째 답 SELECT * FROM FOOD_PRODUCT WHERE PRICE = (SELECT MAX(PRICE) FROM FOOD_PRODUCT) PRODUCT_ID, PRODUCT_NAME, PRODUCT_CD, CATEGORY, PRICE는 식품 ID, 식품 이름, 식품 코드, 식품분류, 식품 가격을 의미 문제 FOOD_PRODU..

[MYSQL] PROGRAMMERS_DATETIME에서 DATE로 형 변환

SELECT ANIMAL_ID, NAME, DATE_FORMAT(DATETIME,"%Y-%m-%d") as 날짜 FROM ANIMAL_INS ORDER BY 1 ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냄 문제 등록된 모든 레코드에 대해, 각 동물의 아이디와 이름, 들어온 날짜1를 조회하는 SQL문을 작성해주세요. 이때 결과는 아이디 순으로 조회 시각(시-분-초)을 제외한 날짜(년-월-일)만 보여주세요. 이전에 풀었던 문제와 같이 DATE_FORMAT을 이용하여 해결하였다. 다른 조건은 크게 필요없는 문제.

[MYSQL] PROGRAMMERS_NULL 처리하기

SELECT ANIMAL_TYPE, IFNULL(NAME,"No name")as NAME, SEX_UPON_INTAKE FROM ANIMAL_INS WHERE 1=1 ORDER BY ANIMAL_ID ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냄 문제 동물의 생물 종, 이름, 성별 및 중성화 여부를 아이디 순으로 조회하는 SQL문을 작성. 이름이 없는 동물의 이름은 "No name"으로 표시하라 NULL을 사용하는게 핵심인 문제로 MySQL에서는 IFNULL로 NULL을 처리 한다. 따라서 SELECT문에서 IFN..

[MYSQL] PROGRAMMERS_이름에 el이 들어가는 동물 찾기

SELECT ANIMAL_ID, NAME FROM ANIMAL_INS WHERE 1=1 AND ANIMAL_TYPE = "Dog" AND NAME like "%EL%" ORDER BY NAME ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부 문제 동물 보호소에 들어온 동물 이름 중, 이름에 "EL"이 들어가는 개의 아이디와 이름을 조회하는 SQL문을 작성. 이때 결과는 이름 순으로 조회. 단, 이름의 대소문자는 구분하지 않는다. MySQL은 찾아본 결과 기본적으로 데이터의 대소문자를 구분하지 않는다고 한다. 따라서 따로 건드..

[MYSQL] PROGRAMMERS_동명 동물 수 찾기

SELECT NAME, count(NAME) as COUNT FROM ANIMAL_INS where 1=1 group by 1 having count >=2 order by 1 ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부 문제 동물 보호소에 들어온 동물 이름 중 두 번 이상 쓰인 이름과 해당 이름이 쓰인 횟수를 조회하는 SQL문을 작성. 결과는 이름이 없는 동물은 집계에서 제외하며, 결과는 이름 순으로 조회 Select 문에서 NAME을 기준으로 집합하여 그 수를 COUNT 해야하는 문제인데 COUNT 된 값에 대한 조건..

[MYSQL] PROGRAMMERS_중복 제거하기

SELECT count(distinct NAME) as count FROM ANIMAL_INS WHERE 1=1 and NAME IS NOT NULL ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부 문제 동물 보호소에 들어온 동물의 이름은 몇 개인지 조회하는 SQL 문을 작성. 이름이 NULL인 경우는 집계하지 않으며 중복되는 이름은 하나로 친다. 참고로 count 함수는 기본적으로 NULL인 경우를 집계하지 않아 IS NOT NULL을 할 필요는 없다. 따라서 삭제해도 되는 구문이다. 해당 문제의 중요한 부분은 중복 제거인..

[MYSQL] PROGRAMMERS_동물 수 구하기

SELECT count(ANIMAL_ID)as count FROM ANIMAL_INS ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부 문제 동물 보호소에 동물이 몇 마리 들어왔는지 조회하는 SQL 문을 작성 동물의 수가 몇마리인지 확인이 필요하기 때문에 해당 값의 유니크성을 가지는 ANIMAL_ID를 기준으로 COUNT 처리하였다.

반응형