热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

SQL扩展之T-SQL中的数据查询语言之统计计算

对于检索数据常常需要进行统计或计算,我们可以使用聚合函数进行统计或者计算。1,聚合函数聚合函数实现数据统计或计算,用于计算表中的数据,返回单个计算结果。除COUN

     对于检索数据常常需要进行统计或计算,我们可以使用聚合函数进行统计或者计算。

     1,聚合函数

聚合函数实现数据统计或计算,用于计算表中的数据,返回单个计算结果。除COUNT函数外,聚合函数忽略空值。  SQL Server 2008所提供常用的聚合函数:


    语法格式:

( [ ALL | DISTINCT ] expression )
   其中,ALL表示对所有值进行聚合函数运算,ALL为默认值,DISTINCT表示去除重复值,expression指定进行聚合函数运算的表达式。

    举例,查询102课程的最高分、最低分、平均成绩:

 USE stsc
   SELECT MAX(grade) AS '最高分',MIN(grade) AS '最低分',AVG(grade) AS '平均成绩'
    FROM score
    WHERE cno='102‘
    例如,求得学生总人数:

USE stsc
 SELECT COUNT(*) AS '总人数'
 FROM student
   例如,查询计算机专业学生的总人数:

USE stsc
  SELECT COUNT(*) AS '总人数'
  FROM student
  WHERE specialist='计算机
    2, GROUP BY

      GROUP BY子句用于将查询结果表按某一列或多列值进行分组,其语法格式为如下:

  [ GROUP BY [ ALL ] group_by_expression [,…n]
   [ WITH { CUBE | ROLLUP } ] ]  
    其中,group_by_expression为分组表达式,通常包含字段名,ALL显示所有分组,WITH指定CUBE或ROLLUP操作符,在查询结果中增加汇总记录。

    例如,查询各门课程的最高分、最低分、平均成绩:

USE stsc
SELECT cno AS '课程号', MAX(grade)AS '最高分',MIN (grade)AS '最低分', AVG(grade)AS '平均成绩'
FROM score
WHERE NOT grade IS null
GROUP BY cno
    例如,求选修各门课程的平均成绩和选修人数:

  USE stsc
   SELECT cno AS '课程号', AVG(grade) AS '平均成绩', COUNT(*) AS '选修人数'
   FROM score
   GROUP BY cno
   3, HAVING 子句

    HAVING子句用于对分组按指定条件进一步进行筛选,最后只输出满足指定条件的分组, HAVING子句的格式为:

[ HAVING 
其中,search_condition为查询条件,可以使用聚合函数。
 当WHERE子句、GROUP BY子句、HAVING子句在一个SELECT语句中时,执行顺序如下:
(1)执行WHERE子句,在表中选择行。
(2)执行GROUP BY子句,对选取行进行分组。
(3)执行聚合函数。
(4)执行HAVING子句,筛选满足条件的分组。
      例如,查询选修课程2门以上且成绩在80分以上的学生的学号:

USE stsc
SELECT stno AS '学号', COUNT(cno) AS '选修课程数'
FROM score
WHERE grade>=80
GROUP BY stno
HAVING COUNT(*)>=2
    例如,查询至少有4名学生选修且以8开头的课程号和平均分数:

USE stsc
SELECT cno AS '课程号', AVG (grade) AS '平均分数'
FROM score
WHERE cno LIKE '8%'
GROUP BY cno
HAVING COUNT(*)>4
    4, 排序查询

     SELECT语句的ORDER BY子句用于对查询结果按升序(默认或ASC)或降序(DESC)排列行,可按照一个或多个字段的值进行排序,ORDER BY子句的格式如下: 

  [ ORDER BY { order_by_expression [ ASC | DESC ] } [ ,…n ]
    其中,order_by_expression是排序表达式,可以是列名、表达式或一个正整数。

     例如,将计算机专业的学生按出生时间先后排序:

USE stsc
  SELECT *
  ROM student
  WHERE specialist='计算机'
  ORDER BY stbirthday
     例如,将通信专业学生按“数字电路”课程成绩降序排序:

 USE stsc
 SELECT a.stname, b.cname, c.grade 
 FROM student a, course b, score c
 WHERE a.stno=c.stno AND b.cno=c.cno AND b.cname='数字电路' AND a.specialist='通信'
ORDER BY c.grade DESC
    


推荐阅读
  • 在C#中开发MP3播放器时,我正在考虑如何高效存储元数据以便快速检索。选择合适的数据结构,如字典或数组,对于优化性能至关重要。字典能够提供快速的键值对查找,而数组则在连续存储和遍历方面表现优异。根据具体需求,合理选择数据结构将显著提升应用的响应速度和用户体验。 ... [详细]
  • 解决Bootstrap DataTable Ajax请求重复问题
    在最近的一个项目中,我们使用了JQuery DataTable进行数据展示,虽然使用起来非常方便,但在测试过程中发现了一个问题:当查询条件改变时,有时查询结果的数据不正确。通过FireBug调试发现,点击搜索按钮时,会发送两次Ajax请求,一次是原条件的请求,一次是新条件的请求。 ... [详细]
  • 本文详细介绍了 InfluxDB、collectd 和 Grafana 的安装与配置流程。首先,按照启动顺序依次安装并配置 InfluxDB、collectd 和 Grafana。InfluxDB 作为时序数据库,用于存储时间序列数据;collectd 负责数据的采集与传输;Grafana 则用于数据的可视化展示。文中提供了 collectd 的官方文档链接,便于用户参考和进一步了解其配置选项。通过本指南,读者可以轻松搭建一个高效的数据监控系统。 ... [详细]
  • Spring框架的核心组件与架构解析 ... [详细]
  • 本文详细介绍了Java反射机制的基本概念、获取Class对象的方法、反射的主要功能及其在实际开发中的应用。通过具体示例,帮助读者更好地理解和使用Java反射。 ... [详细]
  • 用阿里云的免费 SSL 证书让网站从 HTTP 换成 HTTPS
    HTTP协议是不加密传输数据的,也就是用户跟你的网站之间传递数据有可能在途中被截获,破解传递的真实内容,所以使用不加密的HTTP的网站是不 ... [详细]
  • 如何在Java中使用DButils类
    这期内容当中小编将会给大家带来有关如何在Java中使用DButils类,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。D ... [详细]
  • 在软件开发过程中,经常需要将多个项目或模块进行集成和调试,尤其是当项目依赖于第三方开源库(如Cordova、CocoaPods)时。本文介绍了如何在Xcode中高效地进行多项目联合调试,分享了一些实用的技巧和最佳实践,帮助开发者解决常见的调试难题,提高开发效率。 ... [详细]
  • Silverlight 实战指南:深入解析用户提交数据的验证与捕获机制
    本文深入探讨了Silverlight中用户提交数据的验证与捕获机制,详细分析了四种主要的验证方法:基本异常处理、DataAnnotation注解、IDataErrorInfo客户端同步验证以及自定义验证策略。通过实例解析,帮助开发者更好地理解和应用这些机制,提升应用程序的数据处理能力和用户体验。 ... [详细]
  • 为了确保iOS应用能够安全地访问网站数据,本文介绍了如何在Nginx服务器上轻松配置CertBot以实现SSL证书的自动化管理。通过这一过程,可以确保应用始终使用HTTPS协议,从而提升数据传输的安全性和可靠性。文章详细阐述了配置步骤和常见问题的解决方法,帮助读者快速上手并成功部署SSL证书。 ... [详细]
  • 本指南详细介绍了在Linux环境中高效连接MySQL数据库的方法。用户可以通过安装并使用`mysql`客户端工具来实现本地连接,具体命令为:`mysql -u 用户名 -p 密码 -h 主机`。例如,使用管理员账户连接本地MySQL服务器的命令为:`mysql -u root -p pass`。此外,还提供了多种配置优化建议,以确保连接过程更加稳定和高效。 ... [详细]
  • 本文探讨了如何在C#应用程序中通过选择ComboBox项从MySQL数据库中检索数据值。具体介绍了在事件处理方法 `comboBox2_SelectedIndexChanged` 中可能出现的常见错误,并提供了详细的解决方案和优化建议,以确保数据能够正确且高效地从数据库中读取并显示在界面上。此外,还讨论了连接字符串的配置、SQL查询语句的编写以及异常处理的最佳实践,帮助开发者避免常见的陷阱并提高代码的健壮性。 ... [详细]
  • 在使用SSH框架进行项目开发时,经常会遇到一些常见的问题。例如,在Spring配置文件中配置AOP事务声明后,进行单元测试时可能会出现“No Hibernate Session bound to thread”的错误。本文将详细探讨这一问题的原因,并提供有效的解决方案,帮助开发者顺利解决此类问题。 ... [详细]
  • SQL Server 2005 在安装过程中通常会伴随 VS2005 一起安装,并且为了便于数据库管理,还会安装 Management Studio Express 管理工具。然而,在实际使用中,用户可能会遇到登录故障。本文综合分析了这些登录问题的常见原因,并提供了多种有效的解决方法,包括检查配置设置、验证账户权限和网络连接等。通过这些措施,用户可以有效地诊断并解决 SQL Server 2005 的登录问题。 ... [详细]
  • SQLSharper 2014 是一款专为 SQL Server Management Studio (SSMS) 设计的功能增强插件,旨在提升 T-SQL 开发者的效率。该插件提供了多种实用工具,包括快速查询数据库对象、详细查看表结构、优化查询结果导出以及自动生成代码等。适用于需要高效管理和开发 SQL 数据库的专业人士。 ... [详细]
author-avatar
周扒pi
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有