반응형

전체 글 87

[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 위 두개로 구성 된 테이블이 주어져 있다. 데이터를 조회 하기 위해서는 두 테이블을 조인 처..

[MYSQL] PROGRAMMERS_평균 일일 대여 요금 구하기

SELECT ROUND(AVG(DAILY_FEE),0) as AVERAGE_FEE FROM CAR_RENTAL_COMPANY_CAR WHERE 1=1 AND CAR_TYPE = "SUV" CAR_ID, CAR_TYPE, DAILY_FEE, OPTIONS 는 각각 자동차 ID, 자동차 종류, 일일 대여 요금(원), 자동차 옵션 리스트를 나타냄 문제 CAR_RENTAL_COMPANY_CAR 테이블에서 자동차 종류가 'SUV'인 자동차들의 평균 일일 대여 요금을 출력하는 SQL문을 작성. 평균 일일 대여 요금은 소수 첫 번째 자리에서 반올림하고, 컬럼명은 AVERAGE_FEE 로 지정 반올림, 평균을 구하는 법을 묻는 질문으로 일단 SUV 조건 필터링 처리를 해준다. 이후 평균을 구하는 집계함수인 AVG를 통..

반응형