1.數據庫(分組查詢)


1.select max(salary) mx_sal, min(salary) mi_sal,round(avg(salary),2) ag_sal,sum(salary) sm_sal from employees;

查詢最大值,最小值,平均值(保留2位),總和;

2.select  datediff(max(hiredate),min(hiredate)) diffrence from employees;

查詢兩個時間的時間之差,然后取個別名;

3.select count(*) 個數 from employees where department_id = 90;

查看部門員工部門編號是90的員工個數;

4.分組查詢;

分組數據:group by子句語法;

可以使用group by子句將表中的數據分成若干組,where一定要放在from后面;

分組前的查詢:

select 分組函數,列(要求出現在group by的后面)from 表【where 篩選條件】group by 分組的列表【order by 子句】

注意:查詢列表必須特殊,要求是分組函數和group by后出現的字段

1.查詢每個工種的最高工資:

select max(salary),job_id from employees group by job_id;

2.查詢每個位置上的部門個數;

select count(*) department_id from departments group by department_id;

3.查詢郵箱中包含a字符的,每個部門的平均工資;

select avg(salary) 平均工資 ,department_id from employees where email like '%a%' group by department_id 

4.查詢有獎金的每個領導手下員工的最高工資;

select max(salary) , manager_id from employees where commision_pct is not null 

group by  manager_id;

5.查詢哪個部門的員工個數>2:

分組后的查詢:

先查詢部門所有的人數;

select count(*) ,department_id from eployees group by department_id;

再去查人數>2的;

select count(*) ,department_id from eployees group by department_id having count(*)>2;

6.查詢每個工種有獎金的員工的最高工資>12000的的工種編號和最高工資;

首先查最高工資

select max(salary),job_id from employees where commission_pct is not no null  group by job_id having max(salary)>12000;

7.select min(salary) ,manager_id from employees where manager_id >102 group by manager_id having min(salary)>5000

8.select count(*) c,length(last_name) len_name from employees group by len_name  having c>5;

總結:

分組前篩選: 數據源   位置 group by 子句的前面  where

分組后篩選    分組后的結果集   group by 子句的后面  having

分組函數做條件,肯定是放在having語句中;

group by和having后面都支持別名,但是where不支持放別名;

9.多個字段分組:

select avg(salary) departmen_id ,job_id from employees group by departmen_id ,job_id;

10.

select avg(salary) departmen_id ,job_id from employees where departmmen_id is not null group by departmen_id ,job_id having avg(salary)>10000 order by avg(salary) desc;

select max(salary)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM