常用SQL查詢語句練習

#1、求10號部門工資最高和最低的員工的工資
SELECT MAX(salary),MIN(salary)
FROM EMPLOYEES
WHERE department_id = 30;

#2、查詢員工最早的入職時間和最晚入職時間
SELECT MIN(hire_date),MAX(hire_date)
FROM EMPLOYEES;

#3、查詢20號部門的平均工資
SELECT AVG(salary)
FROM EMPLOYEES
WHERE department_id = 20;

#4、查詢20號部門所有員工每個月的工資總和
SELECT SUM(salary)
FROM EMPLOYEES
WHERE department_id = 20;

#5、查詢總人數
SELECT COUNT(employee_id)
FROM EMPLOYEES;

#6、查詢有獎金的總人數
SELECT COUNT(employee_id)
FROM EMPLOYEES
WHERE commission_pct is not null;

#空值問題
#count(*)不忽略空值,其他情況忽略空值
SELECT COUNT(commission_pct)
FROM EMPLOYEES;

SELECT COUNT(*)
FROM EMPLOYEES;

#7、查詢部門20的員工,每個月的工資總和及平均工資。
SELECT SUM(salary),AVG(salary)
FROM EMPLOYEES
WHERE department_id = 20;

#8 查詢工作在Toronto的員工人數,最高工資及最低工資。
SELECT COUNT(e.employee_id),MAX(e.salary),MIN(e.salary)
FROM EMPLOYEES e,DEPARTMENTS d,LOCATIONS l
WHERE e.department_id = d.department_id and d.location_id = l.location_id and l.city = 'Toronto';

#9查詢員工表中一共有幾種崗位類型。
SELECT COUNT(DISTINCT job_id)
FROM EMPLOYEES;

#查詢部門名稱,部門編號,各部門平均工資,按照部門進行分組
SELECT e.department_id,d.department_name,AVG(e.salary)
FROM EMPLOYEES e,DEPARTMENTS d
WHERE e.department_id = d.department_id
GROUP BY e.department_id,d.department_name;

#having子句
#查詢部門名稱,部門編號,各部門平均工資,按照部門進行分組,並且平均工資大於2000
SELECT e.department_id,d.department_name,AVG(e.salary)
FROM EMPLOYEES e,DEPARTMENTS d
WHERE e.department_id = d.department_id
GROUP BY e.department_id,d.department_name
HAVING AVG(e.salary)>2000;


#書寫順序 select--from --where--group by--having-- order BY
#執行順序: from--where-group by -having-select-order by

#按多列進行分組
#根據多列分組時,group by 子句中各列之間用逗號分隔

#查詢每個部門每個崗位的工資總和
SELECT e.department_id 部門編號,j.job_title 崗位,SUM(e.salary)
FROM EMPLOYEES e,JOBS j
WHERE e.job_id = j.job_id
GROUP BY e.department_id,j.job_title;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章