2023-01-17 화요일
1. 평균 일일 대여 요금 구하기
1. CAR_TYPE이 'SUV'인 차량들 전체 출력
SELECT
*
FROM CAR_RENTAL_COMPANY_CAR
WHERE CAR_TYPE = 'SUV'
2. CAR_TYPE 이 'SUV'인 차량들의 DAILY_FEE 전체 합계
SELECT SUM(DATILY_FEE)
FROM CAR_RENTAL_COMPANY_CAR
WHERE CAR_TYPE = 'SUV'
3. CAR_TYPE이 'SUV'인 차량들의 수량 조회 = COUNT(*)
SELECT count(*)
FROM CAR_RENTAL_COMPANY_CAR
WHERE CAR_TYPE = 'SUV';
4. 제출
SELECT ROUND( SUM(DAILY_FEE) / count(*) ) AS AVERAGE_FEE
FROM CAR_RENTAL_COMPANY_CAR
WHERE CAR_TYPE = 'SUV';
문제 해석
- SELECT : 자동차들의 '평균' '일일 대여 요금'을 '소수 첫번째 자리에서 반올림' 하여 'AVERAGE_FEE' 컬럼명으로 출력할 것
- WHERE : 'SUV' 만
집계함수에 대하여
1. COUNT : SELECT count(컬럼명) FROM 테이블명;
SELECT count(car_id)
FROM CAR_RENTAL_COMPANY_CAR
WHERE CAR_TYPE = 'SUV'
2. SUM : SELECT (컬럼명) FROM 테이블명;
SELECT ( SUM(DAILY_FEE) / COUNT(car_id) )
FROM CAR_RENTAL_COMPANY_CAR
WHERE CAR_TYPE = 'SUV'
2. 강원도에 위치한 생산공장 목록 출력하기
1. FOOD_FACTORY 테이블 전체 출력
SELECT * FROM FOOD_FACTORY
2. FOOD_FACTORY : 공장ID, 공장이름, 주소 출력
SELECT FACTORY_ID
, FACTORY_NAME
, ADDRESS
FROM FOOD_FACTORY
3. WHERE : 주소지 이름에 '강원도' 포함
SELECT FACTORY_ID
, FACTORY_NAME
, ADDRESS
FROM FOOD_FACTORY
WHERE ADDRESS LIKE '%강원도%'
4. FACTORY_ID 오름차순으로 출력
SELECT FACTORY_ID
, FACTORY_NAME
, ADDRESS
FROM FOOD_FACTORY
WHERE ADDRESS LIKE '%강원도%'
ORDER BY FACTORY_ID ASC
문제 해석
- SELECT : '공장ID', '공장이름', '주소' 를 '오름차순'으로 출력 할 것
- WHERE : 주소지 이름에 '강원도' 가 포함 된 기준
- ORDER BY : '오름차순'
LIKE 함수
1. LIKE : SELECT (컬럼명) FROM 테이블명 WHERE 컬럼명 LIKE '%';
WHERE ADDRESS LIKE '%강원도%'
(1) 강원도로 시작하는 : '강원도%';
(2) 강원도로 끝나는 : '%강원도';
(3) 강원도가 들어가는 : '%강원도%';
3. 12세 이하인 여자 환자 목록 출력하기
1. PATIENT 테이블 전체 출력
SELECT * FROM PATIENT;
2. FOOD_FACTORY : 환자이름, 환자번호, 성별코드, 나이, 전화번호 출력
SELECT PT_NAME
, PT_NO
, GEND_CD
, AGE
, TLNO
FROM PATIENT
3. WHERE : 12세 이하, 여성 출력
SELECT PT_NAME
, PT_NO
, GEND_CD
, AGE
, TLNO
FROM PATIENT
WHERE GEND_CD='W' AND AGE <= 12
4. 전화번호 없을 경우 'NONE'으로 출력
SELECT PT_NAME
, PT_NO
, GEND_CD
, AGE
, IFNull(TLNO,'NONE')
FROM PATIENT
WHERE GEND_CD='W' AND AGE <= 12
5. 나이 기준 내림차순, 나이 같을시 환자이름 오름차순
SELECT PT_NAME
, PT_NO
, GEND_CD
, AGE
, IFNull(TLNO,'NONE')
FROM PATIENT
WHERE GEND_CD='W' AND AGE <= 12
ORDER BY AGE DESC, PT_NAME ASC;
문제 해석
- SELECT : '환자이름, '환자번호', '성별코드', '나이', '전화번호**' 를 출력 할 것
- WHERE : 성별은 'W', 나이는 '12세이하'
- ORDER BY : 나이를 기준으로 '내림차순', 나이가 같다면 이름을 기준으로 '오름차순'