分组查询

Posted 豆子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了分组查询相关的知识,希望对你有一定的参考价值。

(十二)分组查询

  • 将数据表中的数据按某种条件分成组,按组显示统计信息

  • 查询各班学生的最大年龄、最小年龄、平均年龄和人数

  • 分组

    SELECT <字段名表1> FROM <表名> -- 这里字段名表1 应该 是 按照字段名表2 分组以后 能够产生唯一值的 字段(如:班级)

    [WHERE <条件> ]

    GROUP BY <字段名表2>

    [HAVING <条件> ]

    [ORDER BY <字段名列表3> ]

--例1 查询各班学生的最大年龄、最小年龄、平均年龄和人数
-- 将多余空格删去
UPDATE Student
SET Sdept = ltrim(sdept)

Select ltrim(Sdept) AS 系别, MAX(Sage) AS 最大, MIN(Sage) AS 最小,
AVG(Sage) AS 平均, COUNT(*) AS 人数
FROM Student
GROUP BY ltrim(Sdept)
ORDER BY 平均 DESC

--例2 查询各班学生的最大年龄、最小年龄、平均年龄和人数
--并且按平均年龄降序排列
--见上

--例3 查询各系别男生和女生人数
SELECT Sdept, Ssex, COUNT(*) AS 人数
FROM Student
GROUP BY Sdept, Ssex  --通过系别,男女分组
ORDER BY Sdept

--例4 查询各系别姓张的学生的人数
SELECT Sdept, Count(*) AS 张姓人数 
FROM Student
WHERE Sname LIKE 张%
GROUP BY Sdept

--例5 查询姓"张"的学生人数等于1的班级 及 姓张的人数
SELECT Sdept, Count(*) AS Douzi  
FROM Student
WHERE Sname LIKE 张%
GROUP BY Sdept
Having COUNT(*) = 1

--例6 查询各系别同学来自不同的省份人数,按班级排序
Select Sdept, Province, Count(*)
from Student
GROUP BY Sdept, Province
ORDER BY Sdept

 

以上是关于分组查询的主要内容,如果未能解决你的问题,请参考以下文章

oracle分组查询

oracle分组查询

你如何在 python 中处理 graphql 查询和片段?

Microsoft SQL Server 代码片段收集

oracle 分组查询 子查询 统计查询 FROM加子查询临时表 查询高于平均工资 示例代码

Mysql 的按时间段分组查询