COUNT(*)分组查询,男女两组人数各多少 对where进行筛选

use demo
go
select * from hanshu

--【COUNT(*)】分男女组查询
--查询男女各多少人
select COUNT(*) FROM hanshu WHERE sex=‘男‘
select COUNT(*) FROM hanshu WHERE sex=‘女‘

--【一次性查询男女各多少人】
--对查询的列有限制,必须是分组的项
select COUNT(*) as 总人数,sex AS 性别 from hanshu GROUP BY sex

--【在分组之后对分组的结果进行排序 order by 升序ASC, 降序DESC】
--查询每个人的年龄,然后进行降序排列

select id AS 商品编号,SUM(moeny) AS 全部年龄
from hanshu
GROUP BY id
ORDER BY SUM(moeny) ASC

--【如何对分组后的结果进行筛选 HAVING】
--WHERE用于分组之前的条件筛选 HAVING用于分组之后的条件筛选
--查询年龄超过10的
select id AS 商品编号,SUM(moeny) AS 全部年龄
from hanshu
GROUP BY id
HAVING SUM(moeny)>10
ORDER BY SUM(moeny) ASC

--如果在一个查询同时where与HAVING可以吗?
--可以
--select..from..where..GROUP BY..HAVING...ORDER BR
--查询2015-1-1到2018-5-5的年龄超过10 的商品编号
SELECT * FROM hanshu WHERE data BETWEEN ‘2015-1-1‘ AND ‘2018-5-5‘ --查询hanshu表中2015-1-1到2018-5-5之间的数据

select SUM(moeny) AS 年龄总量,id AS 商品编号
from hanshu
where data BETWEEN ‘2015-1-1‘ AND ‘2018-5-5‘
GROUP BY id
HAVING SUM(moeny)>2
ORDER BY SUM(moeny) ASC

原文地址:https://www.cnblogs.com/tangtangsimida/p/9515241.html

时间: 2024-10-11 12:58:15

COUNT(*)分组查询,男女两组人数各多少 对where进行筛选的相关文章

SQLServer 分组查询相邻两条记录的时间差

原文:SQLServer 分组查询相邻两条记录的时间差 首先,我们通过数据库中表的两条记录来引出问题,如下图 以上为一个记录操作记录的表数据.OrderID为自增长列,后面依次为操作类型,操作时间,操作人. 现在的问题是:要求筛选出数据库中从“接收”到“送出”的时间差超过2天的全部记录.即如上图两笔单据中,红色框既是要筛选出的,绿色框为正常过滤的. 为了定位相邻记录,方法为给查询语句的返回记录加个自动编号列放入临时表中,再对临时表进行操作. --1.首先查出表中符合條件的所有信息 select

【MySQL】【13】分组查询取每组最新的一条数据

前言:获取所有用户填写的最新一条地址数据 正文: 错误写法: mysql5.7时,子查询的排序已经变为无效了 SELECT * FROM (SELECT * FROM address ORDER BY create_time DESC) a GROUP BY user_id 方法1: 此时子查询就不光是排序,所以此时排序会生效,但有条数限制 SELECT * FROM (SELECT * FROM address ORDER BY create_time DESC LIMIT 10000) a

S1/C#语言和数据库技术基础/11-连接查询和分组查询

分组查询 采用分组查询的T-SQL语句如下. SELECT   CourseID,AVG(Score)   AS   课程平均成绩 FROM   Score GROUP   BY   CourseID (1)查询男女学生的人数各是多少 SELECT   COUNT(*)    AS   人数,SSex    FROM   Students GROUP   BY   SSex (2)查询每个年级的总人数 SELECT   COUNT(*)   AS   年级人数,SGrade   FROM   S

链接查询和分组查询

use Myschool--查询对应年级下的人数SELECT COUNT(1) AS '人数' FROM Student WHERE GradeId=1SELECT COUNT(1) AS '人数' FROM Student WHERE GradeId=2SELECT COUNT(1) AS '人数' FROM Student WHERE GradeId=3--分组查询地区对应的人数--分组查询原理:根据特定列进行的分组,找列的想同值SELECT COUNT(1) AS '人数',Address

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_

MySQL分组查询每组最新的一条数据

开发中经常会遇到,分组查询最新数据的问题,比如下面这张表(查询每个地址最新的一条记录): sql如下: -- ---------------------------- -- Table structure for test -- ---------------------------- DROP TABLE IF EXISTS `test`; CREATE TABLE `test` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(10

sql server——分组查询(方法和思想)

思想 先排序在汇总 sql server里分组查询通常用于配合聚合函数,达到分类汇总统计的信息.而其分类汇总的本质实际上就是先将信息排序,排序后相同类别的信息会聚在一起,然后通过需求进行统计计算. 使用GROUP BY进行分组查询 实例演示 --查询男女生的人数 在没有学习分组查询之前,我们可以安装常规的思路解决查询需求: select count(*) from student where sex='男' select count(*) from student where sex='女' 那

Group by 分组查询 实战

实战经历,由于本人在共享单车上班,我们的单车管理模块,可以根据单车号查询单车,但是单车号没有设置unique(独一无二约束),说以这就增加了单车号可能重复的风险,但是一般情况下,单车号是不会重复的,因为平台的单车都是人工录入的,但是二般情况下,就会出现,一旦出现,那么就shit了,很不幸,今天就出现了这个问题,“一个单车号,可以在单车管理模块查出来有两条记录”这个时候,我们就必须把出现这种问题的单车号,再次手动编辑改变,由于数据库里,单车管理表里有成千上万个单车,但是,都有哪一个单车号出现了两次

表连接和分组查询

分组查询:分组查询就是按某一列分组,相同的列合并,得到结果可能他少于总记录 使用group by分组查询:按什么分(年级.姓氏.地址.年龄)年级 分组查询语法:Select * from <表名>Where 条件Group by 列名 Group by后的列名必须在*里面出现 Demo:Select GradeId From StudentGroup by GradeId --统计每学期男女同学的人数 该怎么办select GradeId as 编号,COUNT(Sex) as 总和 from