select OBJ from object where price>=1000000 and price <2500000;
2. 회사가 구매한 물건이 몇 개인지 구하시오.
(장소, 물건개수)
select PLC, count(OBJ) from object where PLC='회사';
3. 각 장소에 포함되어 있는 부서들의 개수를 구하시오.
(장소, 부서개수)
select PLC,count(DEPT) from dept group by PLC;
4. 마케팅 부서에 속한 사람들의 목록을 구하시오.
(사번, 이름, 장소, 부서)
select PSN_NO, PSN_NM, PLC, DEPT from psn where DEPT='마케팅';
5. 사번이 500번대인 사람들의 목록을 구하시오.
(사번, 이름)
select PSN_NO, PSN_NM from psn where PSN_NO like 'P5__';
🌱 피드백
LIKE는 검색 속도가 느려서 문자열 검색말고는 안 사용하는게 좋음
숫자만 뽑아내는 정규식을 사용해 숫자만 추출
REGEXP_REPLACE나 SUBSTRIN을 사용해서 추출
6. 회사 소속 사람 중, 생년월일이 가장 빠른 사람을 구하시오.
(사번, 이름, 장소, 생년월일)
select PSN_NO, PSN_NM, PLC, BRT_DT from psn order by BRT_DT asc limit 1;
7. 학교 소속 사람 중, 2010년대 입사자 목록을 구하시오.
(사번, 이름, 장소, 입사일)
select PSN_NO, PSN_NM, PLC, IN_DT from psn where IN_DT like '201%';
🌱 피드백
숫자나 날짜로 변경해서 비교
8. 퇴사자 목록을 구하시오.
(사번, 이름, 퇴사일)
select PSN_NO, PSN_NM, OUT_DT from psn where OUT_DT is not null;
9. 퇴사자를 제외한 사람들의 오늘까지의 근속일을 구하시오.
(사번, 이름, 입사일, 근속일)
select PSN_NO, PSN_N, IN_DT,datediff(date_format(now(),'%Y-%m-%d'),date_format( str_to_date(IN_DT,'%Y%m%d'),'%Y-%m-%d')) as TENURE from psn where OUT_DT is null;
10. 퇴사자가 가장 많은 부서를 구하시오.
(부서)
select DEPT from psn group by DEPT having COUNT(OUT_DT)>=(select count(OUT_DT) from psn group by DEPT order by count(OUT_DT) desc limit 1);
🌱 피드백
LIMIT는 DB 변경시 바꿔야 하기 때문에 MAX나 MIN이 괜찮음
ORDER BY, LIKE 검색은 속도가 느림
KEY값 검색이 가장 빠름
UNIQUE만 걸어도 키가 됨
11. 가장 인원 수가 많은 장소를 구하고 그 장소가 구매한 물건 가격들의 합을 구하시오
(장소, 물건 가격의 합)
select PLC, SUM(PRICE) from object where PLC=(select PLC from psn group by PLC order by count(IN_DT)-COUNT(OUT_DT) desc limit 1);
12. 학교, 회사 두 장소가 함께 가지고 있는 물건들을 구하시오.
(물건)
select distinct a.OBJ from object a join object b on (a.OBJ=b.OBJ and a.PLC != b.PLC);
13. 인적정보가 없는 장소를 구하시오.
(장소)
select PLC from place where PLC not IN(select PLC from psn group by PLC);
1. 물건 가격이 100만원 이상, 250만원 미만인 물건들의 목록을 구하시오.
(장소, 물건, 가격)
2. 회사가 구매한 물건이 몇 개인지 구하시오.
(장소, 물건개수)
3. 각 장소에 포함되어 있는 부서들의 개수를 구하시오.
(장소, 부서개수)
4. 마케팅 부서에 속한 사람들의 목록을 구하시오.
(사번, 이름, 장소, 부서)
5. 사번이 500번대인 사람들의 목록을 구하시오.
(사번, 이름)
🌱 피드백
6. 회사 소속 사람 중, 생년월일이 가장 빠른 사람을 구하시오.
(사번, 이름, 장소, 생년월일)
7. 학교 소속 사람 중, 2010년대 입사자 목록을 구하시오.
(사번, 이름, 장소, 입사일)
🌱 피드백
8. 퇴사자 목록을 구하시오.
(사번, 이름, 퇴사일)
9. 퇴사자를 제외한 사람들의 오늘까지의 근속일을 구하시오.
(사번, 이름, 입사일, 근속일)
10. 퇴사자가 가장 많은 부서를 구하시오.
(부서)
🌱 피드백
11. 가장 인원 수가 많은 장소를 구하고 그 장소가 구매한 물건 가격들의 합을 구하시오
(장소, 물건 가격의 합)
12. 학교, 회사 두 장소가 함께 가지고 있는 물건들을 구하시오.
(물건)
13. 인적정보가 없는 장소를 구하시오.
(장소)
🌱 피드백