SQL查询教程:分组统计与条件筛选

需积分: 10 1 下载量 50 浏览量 更新于2024-08-23 收藏 539KB PPT 举报
"本资源是关于Visual FoxPro的教程,主要讲解了如何进行分组查询。在SQL数据查询语言中,GROUP BY语句用于对数据进行分组,而HAVING子句则用来设置分组后的过滤条件。" 在Visual FoxPro或者任何支持SQL语言的关系数据库管理系统中,分组查询是一种强大的工具,它允许我们根据一个或多个字段对数据进行聚合,以获取每个组的汇总信息。GROUP BY语句是执行此类操作的关键,它的基本格式是: ``` GROUP BY <组合列表> [HAVING <过滤条件>] ``` 在这里,`<组合列表>`是你想要分组的字段列表,例如`GROUP BY 学院, 性别`,这将把数据按照学院和性别的组合进行分组。而`HAVING`子句则在分组后应用过滤,它的工作方式类似WHERE子句,但WHERE在数据分组前进行过滤,HAVING则在分组后过滤满足特定条件的组。 例如,如果你想找出每个学院的平均入学成绩,你可以使用这样的查询: ```sql SELECT 学院, AVG(入学成绩) AS 平均入学成绩 FROM student GROUP BY 学院 HAVING AVG(入学成绩) > 550 ``` 在这个例子中,`GROUP BY 学院`按学院分组,`AVG(入学成绩)`计算每个学院的平均入学成绩,然后`HAVING AVG(入学成绩) > 550`只保留平均成绩高于550的学院。 SQL语言的特点使其易于学习和使用,它能处理各种复杂的查询任务,包括基本查询、带条件查询、嵌套查询、多表查询、排序输出、重定向输出以及我们这里讨论的分组统计查询。在进行多表查询时,可以使用JOIN ON语句来连接两个或更多表,以获取跨表的信息。 在基本查询中,你可以选择要显示的字段,使用DISTINCT关键字去除重复记录,而WHERE子句则用于添加筛选条件,例如`WHERE 籍贯 = '江苏' OR 籍贯 = '贵州'`。同时,SQL提供了一系列的比较运算符,如=、<>、>、<等,以及LIKE、BETWEEN、IN、IS NULL等特殊操作,以满足不同类型的查询需求。 通过熟练掌握这些SQL查询技巧,开发者能够高效地从数据库中提取所需信息,进行数据分析和报表生成。在Visual FoxPro这样的环境中,这些能力尤其重要,因为它们极大地提高了数据处理的效率和准确性。