分组统计:count,group by,having, order by

--统计男女生的总人数
select COUNT(*) from Student where Sex=‘男‘
select COUNT(*) from Student where Sex=‘女‘
--统计每一个班级的总人数
select COUNT(*) from Student where ClassId=1
--分组统计:需要按班级分组,每一个组得到一个统计结果
--select 字段列表 from 表列表 where 数据源筛选 group by 分组字段列表 order by 排序字段列表
select classid, COUNT(*) from Student group by ClassId
--使用分组统计男女生总人数
select sex, COUNT(*) from Student group by sex

--分组统计的细节:
select sex, COUNT(*) from Student
select sex from Student
select COUNT(*) from Student
--sql语句执行的顺序
--5 显示 1 2 3 4 6
--select 字段列表 from 表列表 where 数据源的筛选 group by 分组字段列表 having 分组统计结果集的筛选 Order by 排序字段列表
--语法规则:聚合不应出现在 WHERE 子句中,聚合函数应该使用在having中
--where是对源数据进行筛选的,但是having是对分组统计所获取的结果集进行筛选的。
select classid, COUNT(*) as cnt from Student where Address is not null group by ClassId having COUNT(*)>2 order by cnt

--查询每一个班级男女生的总人数
select classid,sex, COUNT(*) from Student group by ClassId,Sex order by ClassId
--
select top 2 * from Student
select top 2 * from Student order by StudentName
--当你看到 每个 不同 各自 的时候,就考虑分组
--1.查询每个班级的总学时数,并按照升序排列 subject
select ClassId,SUM(ClassHour) from Subject group by ClassId order by SUM(ClassHour)
--2.查询每个参加考试的学员的平均分 result
select (select studentname from Student where StudentNo=result.StudentNo),AVG(StudentResult) from Result group by StudentNo
--3.查询每门课程的平均分,并按照降序排列 result
select SubjectId 科目ID,AVG(StudentResult) 平均分 from Result group by SubjectId order by 科目ID Desc
--4.查询每个班级男女生的人数 --多字段分组
select classid,sex, COUNT(*) from Student group by ClassId,Sex order by ClassId

时间: 2024-10-18 07:16:01

分组统计:count,group by,having, order by的相关文章

[Mongo]分组统计时间 aggregate,group,distinct

开发中有些按日期记录的记录需要各种维度的统计,按天,按月,按年,按小时,..分组统计,还有些需要对字段去重统计,在之前的 [Mongo] 按时间分组统计(group时间格式化)  中用group实现了按天的统计,不过使用new Date()方法会有些坑,今天看了下aggregate中,使用聚合来写个时间统计. tips: aggregate 挺复杂,弄明白了再做笔记,现在只是根据需求来查询. 数据结构还是: /* 0 */ { "_id" : ObjectId("541fcc

6.数据分组-统计信息

---数据分组-统计信息----- --select 字段列表from 表列表 where 对数据源进行数据筛选group by 分组字段列表Order by 排序字段列表 --1.得到所有学员总人数 select COUNT(*) from Student --2.得到男女生的人数 select COUNT(*) from Student where Sex='男' select COUNT(*) from Student where Sex='女' --使用分组统计 select COUNT

003.分组统计查询和表连接查询

--分组统计查询 group by having 1 select 分组字段 ,聚合函数 2 having 后常跟聚合函数,也可以跟分组字段 3 where 后不可以直接跟聚合函数 4 where(筛选行) -group by (分组) -having (筛选组) --表连接查询 1 笛卡尔积 (交叉连接 cross join) a*b A) SELECT * FROM A,B B) SELECT * FROM A CROSS JOIN B 2 内连接 原理: 将两个表中关联字段相等的行查询出来

MySQL进阶5--分组排序和分组查询 group by(having) /order by

MySQL进阶--分组排序和分组查询 group by(having) /order by /* 介绍分组函数 功能:用做统计使用,又称为聚合函数或组函数 1.分类: sum, avg 求和 /平均数, 只处理数值型,都绝对忽略NULL值(avg处理时统计的个数没有null项) max ,min ,可以求字符串最大最小 ,可以匹配日期,都绝对忽略NULL值 count ,不计算NULL ,不把null算进数里 #2. 参数支持类型 SELECT MIN(last_name) ,MAX(last_

MongoDB的分组统计 group

mongodb中的分组聚合用$group,它是不能进行sort的,使用格式如下: { $group: { _id: <expression>, <field1>: { <accumulator1> : <expression1> }, ... } } 其中_id属性是必须要有的,目的是用来指定分组的字段或依据,field1为自定义字段,accumulator为累加器,下面以统计每天用户注册数为列 db.user.aggregate([ { $group:{

Excel 中使用SQL 语句查询数据(八)-----用Group by 进行分组统计

今天要和大家分享用在sql 语句中使用group by来进行分组统计.大家首先来看一下数据源. 用OLE DB 打开数据源,(步骤请参考本系列第一篇博文) 最后一条语句group by Item ,就是以Item 列分组. 结果如下 按照item 分类汇总

分组统计查询(学习笔记)

查询出公司每个月支出的工资总和 --查询出公司每个月支出的工资总和 SELECT SUM(sal) FROM emp; 查询出公司的最高工资,最低工资和平均工资 --查询出公司的最高工资,最低工资和平均工资 SELECT MAX(sal),MIN(sal),ROUND(AVG(sal),2) FROM emp; 统计出公司最早雇佣和最晚雇佣的雇佣日期 --统计出公司最早雇佣和最晚雇佣的雇佣日期 SELECT MIN(hiredate) 最早雇佣日期 , MAX(hiredate) 最晚雇佣日期

010.简单查询、分组统计查询、多表连接查询(sql实例)

-------------------------------------day3------------ --添加多行数据:------INSERT [INTO] 表名 [(列的列表)] --SELECT UNION --SELECT 'HAHA',1,32--UNION ALL --全部显示/显示重复数据 即使集合相同--UNION---------将查询的两个结果集合并.结构必须一致 -->常见面试题 --SELECT 'HEHE',2,33------将查询结果添加到列表中(子查询)IN

组函数及分组统计

分组函数 SQL中常用的分组函数 Count(): 计数 Max():求最大值 Min():求最小值 Avg():求平均值 Sum():求和 -- 统计emp表中的人数 select count(*) from emp; -- 统计获得奖金的人数 select count(comm) from emp; -- 求所有雇员的最低工资 select min(sal) from emp; -- 求所有雇员的最高工资 select max(sal) from emp; -- 求部门编号为20的雇员的平均