반응형

2024/02 79

[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 처리하였다.

[MYSQL] PROGRAMMERS_조건에 부합하는 중고거래 댓글 조회하기

SELECT TITLE, a.BOARD_ID, REPLY_ID, b.WRITER_ID, b.CONTENTS, DATE_FORMAT(b.CREATED_DATE, '%Y-%m-%d') as CREATED_DATE From USED_GOODS_BOARD as a, USED_GOODS_REPLY as b where a.BOARD_ID = b.BOARD_ID and a.CREATED_DATE LIKE "2022-10%" order by b.CREATED_DATE,TITLE USED_GOODS_BOARD 테이블 BOARD_ID WRITER_ID TITLE CONTENTS PRICE CREATED_DATE STATUS VIEWS USED_GOODS_REPLY 테이블 REPLY_ID BOARD_ID WRITER_ID ..

[MYSQL] PROGRAMMERS_자동차 대여 기록에서 장기/단기 대여 구분하기

SELECT HISTORY_ID, CAR_ID, DATE_FORMAT(START_DATE,"%Y-%m-%d")as START_DATE, DATE_FORMAT(END_DATE,"%Y-%m-%d")as END_DATE, Case when datediff(END_DATE,START_DATE) + 1 >= 30 then '장기 대여' else '단기 대여' end as RENT_TYPE FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY WHERE 1=1 AND START_DATE like '2022-09%' ORDER BY HISTORY_ID desc HISTORY_ID, CAR_ID, START_DATE, END_DATE 는 각각 자동차 대여 기록 ID, 자동차 ID, 대여 시작일, 대여 ..

[MYSQL] PROGRAMMERS_특정 옵션이 포함된 자동차 리스트 구하기

SELECT CAR_ID, CAR_TYPE, DAILY_FEE, OPTIONS FROM CAR_RENTAL_COMPANY_CAR WHERE 1=1 AND OPTIONS like "%네비게이션%" ORDER BY 1 desc 문제 CAR_RENTAL_COMPANY_CAR 테이블에서 '네비게이션' 옵션이 포함된 자동차 리스트를 출력하는 SQL문을 작성. 결과는 자동차 ID를 기준으로 내림차순 정렬 OPTIONS의 값이 스마트키,네비게이션,열선시트 와 같이 여러 단어가 한 테이블 안에 존재한다. 사실 이건 제1..정규형에 위배.. 되지만... 상황에 따라 컬럼이 과도하게 만들어지거나 처리가 어려울 경우 위와 같이 쓰기도 한다. 이럴 때에는 like "%단어%" 를 처리하면 해당 단어가 중간에 있거나 맨앞 맨뒤..

[MYSQL] PROGRAMMERS_과일로 만든 아이스크림 고르기

SELECT a.FLAVOR FROM FIRST_HALF as a,ICECREAM_INFO as b WHERE a.FLAVOR =b.FLAVOR AND a.TOTAL_ORDER >3000 AND b.INGREDIENT_TYPE = 'fruit_based' ORDER BY TOTAL_ORDER desc 문제 상반기 아이스크림 총주문량이 3,000보다 높으면서 아이스크림의 주 성분이 과일인 아이스크림의 맛을 총주문량이 큰 순서대로 조회하는 SQL 문을 작성 FIRST_HALF 테이블 a SHIPMENT_ID FLAVOR TOTAL_ORDER ICECREAM_INFO 테이블 b FLAVOR INGREDIENT_TYPE 위 두개로 구성 된 테이블이 주어져 있다. 데이터를 조회 하기 위해서는 두 테이블을 조인 처..

반응형