select count(*) from emp;
select count(idcard) from emp;
对于count聚合函数,统计符合条件的总记录数,还可以通过 count(数字/字符串)的形式进行统计查询:
select count(1) from emp;
案例二:统计该企业员工的平均年龄
select avg(age) from emp;
案例三:统计该企业员工的最大年龄
select max(age) from emp;
案例四:统计该企业员工的最小年龄
select min(age) from emp;
案例四:统计西安地区员工的年龄之和
select sum(age) from emp where workaddress = '西安';
二、分组函数
(1)语法:
SELECT 字段列表 FROM 表名 [ WHERE 条件 ] GROUP BY 分组字段名 [HAVING 分组后过滤条件];
(2) 在这里,要注意where和havaing的区别:
① 执行时机不同:where是分组之前进行过滤,不满足where条件,不参与分组;而having是分组之后对结果进行过滤。
②判断条件不同:where不能对聚合函数进行判断,而having可以。
1.分组之后,查询的字段一般为聚合函数和分组字段,查询其他字段无任何意义。
2.执行顺序: where > 聚合函数 > having 。
3.支持多字段分组, 具体语法为 : group by columnA,columnB
案例一:根据性别分组,统计男性员工和女性员工的数量。
-- 思路:count(*)
select gender, count(*) from emp group by gender ;
案例二:根据性别分组 , 统计男性员工 和 女性员工的平均年龄。
-- 思路:avg(age)
select gender, avg(age) from emp group by gender ;
案例三:查询年龄小于45的员工 , 并根据工作地址分组 , 获取员工数量大于等于3的工作地址。
-- 思路:having address_count>=3
select workaddress, count(*) address_count from emp where age < 45 group by workaddress having address_count >= 3;
案例四:统计各个工作地址上班的男性及女性员工的数量。
-- 思路:count(*) '数量'
select workaddress, gender, count(*) '数量' from emp group by gender , workaddress;
三、排序查询
排序在日常开发中是非常常见的一个操作,有升序排序,也有降序排序。
应用场景:在某商城中价格的升序与降序等业务场景。
(1) 语法:
SELECT 字段列表 FROM 表名 ORDER BY 字段1 排序方式1 , 字段2 排序方式2 ;
(2) 排序方式
排序方式分为两种:升序--ASC(默认值) 和 降序--DESC
注意事项:
① 如果是升序, 可以不指定排序方式ASC ;
② 如果是多字段排序,当第一个字段值相同时,才会根据第二个字段进行排序;
案例一:根据年龄对公司的员工进行升序排序。
select * from emp order by age asc;
select * from emp order by age;
案例二:根据入职时间, 对员工进行降序排序。
select * from emp order by entrydate desc;
案例三:根据年龄对公司的员工进行升序排序 , 年龄相同 , 再按照入职时间进行降序排序。
select * from emp order by age asc , entrydate desc;
下一章是数据查询语言最后一章,会分别对分页查询语法及其案例和执行顺序进行归纳总结。
Java开发工程师
粉丝