Q1. 그룹 함수는 여러 행에 적용되어 그룹 당 하나의 결과를 출력합니다. ( True / False ) T

 

Q2. 그룹 함수는 계산에 널을 포함합니다. ( True / False ) F

 

Q3. WHERE 절은 그룹 계산에 행을 포함시키기 전에 행을 제한합니다. ( True / False ) T

 

Q4. 모든 사원의 급여 최고액, 최저액, 총액 및 평균액을 표시하십시오. 열 레이블을 각각 Maximum, Minimum, Sum 및 Average 로 지정하고 결과를 정수로 반올림한 후 작성한 SQL문을 lab5_4.sql이라는 파일에 저장하십시오.

 

select max(salary) as Maximum, min(salary) as Minimum, sum(salary) as Sum, 
round(avg(salary), 1) as Average
from employees;

 



Q5. lab5_4.sql의 질의를 수정하여 각 업무 유형별로 급여 최고액, 최저액, 총액 및 평균액을 표시하십시오. lab5_4.sql을 lab5_5.sql로 다시 저장하고 lab5_5.sql의 명령문을 실행하십시오.

select job_id, max(salary) as Maximum, min(salary) as Minimum, sum(salary) as Sum, 
avg(salary) as Average
from employees
group by job_id;

 

 


Q6. 업무가 동일한 사원 수를 표시하는 질의를 작성하십시오.

select job_id, count(job_id) as 'Count(*)'
from employees
group by job_id;

 



Q7. 관리자는 나열하지 말고 관리자 수를 확인하십시오. 열 레이블은 Number of Managers로 지정하십시오 .힌트 : MANAGER_ID 열을 사용하여 관리자 수를 확인하십시오.

select count(manager_id) as 'Number of Managers'
from employees;

 



Q8. 최고 급여와 최저 급여의 차액을 표시하는 질의를 작성하고 열 레이블을 DIFFERENCE로 지정하십시오.

select max(salary) - min(salary) as 'DIFFERENCE'
from employees

 

 


Q9. 관리자 번호 및 해당 관리자에 속한 사원의 최저 급여를 표시하십시오. 관리자를 알 수 없는 사원 및 최저 급여가 $ 6,000 미만인 그룹은 제외시키고 결과를 급여에 대한 내림차순으로 정렬하십시오.

select manager_id, min(salary) 
from employees    
WHERE manager_id IS NOT NULL      
GROUP BY manager_id      
HAVING MIN(salary) > 6000      
ORDER BY MIN(salary) DESC;

 



Q10. 각 부서에 대해 부서 이름, 위치, 사원 수, 부서 내 모든 사원의 평균 급여를 표시하는 질의를 작성하고, 열 레이블을 각각 Name, Location, Number of People 및 Salary로 지정하십시오. 평균 급여는 소수점 둘째 자리로 반올림하십시오.

select department_name as 'Name', location_id as 'Location', count(*) as 'Number of People', 
round(avg(salary), 1) as Salary 
from employees join departments
using(department_id)
group by department_name;

 



Q11. 총 사원 수 및 2005, 2006, 2007, 2008년에 입사한 사원 수를 표시하는 질의를 작성하고 적합한 열 머리글을 작성하십시오.

select count(*) TOTAL,
sum(if(hire_date like '2005%', 1, 0)) '2005%',
sum(if(hire_date like '2006%', 1, 0)) '2006%',
sum(if(hire_date like '2007%', 1, 0)) '2007%',
sum(if(hire_date like '2008%', 1, 0)) '2008%'
from employees;

 


Q12. 업무를 표시한 다음 해당 업무에 대해 부서 번호별 급여 및 부서 20, 50, 80 및 90의 급여 총액을 각각 표시하는 행렬 질의를 작성하고 각 열에 적합한 머리글을 지정하십시오.

select job_id,
sum(case department_id when 20 then salary end) Dept20,
sum(case department_id when 50 then salary end) Dept50,
sum(case department_id when 80 then salary end) Dept80,
sum(case department_id when 90 then salary end) Dept90,
sum(salary) Total
from employees
group by job_id;

'MySQL은 좀 낫다면서요' 카테고리의 다른 글

MySQL #Ch6.서브쿼리 : 연습문제  (0) 2021.06.17
MySQL #함수  (0) 2021.06.17
MySQL #CH4. Join : 연습문제  (0) 2021.06.16
MySQL #조인(Join)  (0) 2021.06.16
MySQL #CH2. Select : 연습문제  (0) 2021.06.15

+ Recent posts