iknowahra / cspiEdu

CSPI OJT
0 stars 0 forks source link

과제 : SQL 과제_SG #40

Open seulgi9834 opened 3 years ago

seulgi9834 commented 3 years ago

1. 물건 가격이 100만원 이상, 250만원 미만인 물건들의 목록을 구하시오.

(장소, 물건, 가격)

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__'; 

🌱 피드백


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);

🌱 피드백


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);

🌱 피드백


iknowahra commented 3 years ago

오오...!! 역시 자세한 설명 감사합니다!!