当前位置: 首页 > news >正文

SQL Server 数据库,使用函数查询统计信息

4.1 在查询中使用函数

       在前面章节已经学习了一些简单的增、删、改、查询的T-SOL.语句,但是为了更方便快捷地完 成大量的任务,SOLServer提供了一些内部函数,可以和SOLServer的SELECT语句联合使用,也可 以与UPDATE和INSERT一起使用,可以进行类型转换、日期处理、数学计算,实现系统功能。   

      根据用途,把函数分为五类,分别是系统函数、字符串函数、日期函数、聚合函数与数学函数。

4.1.1系统函数

系统函数用来获取有关SOL Server 中对象和设置的系统信息,如表4-1所示,列出了经常使用 的一些系统函数。

      上面所有这些函数,可以在T-SOL中混合使用,得到符合特殊要求的查询输出。 CONVERT和CAST的类型转换使用频繁,在很多场合均可使用。尤其是在网站应用中,常常需 要将各种类型的数据转换成指定格式的字符串,然后拼接成显示内容。

4.1.2字符串函数

     字符串函数用于控制返回给用户的字符串,这些功能仅用于字符型数据。如表4-2所示,列出 了部分常用的字符串函数。

     字符串在信息处理时有特殊的地位,几乎所有信息都需要转换成字符串才能正确显示,尤其是不同数据拼接起来显示的使用更加广泛。 字符串拼接很简单,两个字符串之间使用“+”即可。

4.1.3日期函数

      在SQL Server中不能直接对日期运用数学函数,需要使用日期函数操作日期值,例如,如果执 行一个诸如“当前日期+1”的语句,SQL Server无法理解要增加的是一日、一月还是一年。

      日期函数帮助提取日期值中的日、月及年,以便分别操作它们。如表4-3所示,列出了部分常 用的日期函数。 

4.1.4聚合函数与分组查询

     在查询时还会经常碰到的是取某些列的最大值,最小值,平均值等信息,有时候还需要计算出 究竟查询到多少行数据项,这个时候,查询的“统计数据”是用户比较关心的,因此 SOL Server 提 供了聚合函数,聚合函数能够基于列进行计算,并返回单个值。

      分组查询是指将查询结果按条件分组,然后使用聚合函数返回每个组的汇总信息。分组查询一 般是用来满足统计需求的。

1.聚合函数 常用的聚合函数有SUM()、AVG()、MAX()、MIN()和COUNT()。

(1)SUM()。SUM()函数返回表达式中所有数值的总和,它只能用于数字类型的列,不能够汇总 字符,日期等其他数据类型。

(2)AVG()。AVG()函数返回表达式中所有数值的平均值,它也只能用于数字类型的列.

(3)MAX()和MN()。MAX()函数返回表达式中的最大值,MN()函数返回表达式中的最小值,它 们都可以用于数字型、字符型及日期/时间类型的列。

(4)COUNT()。COUNT()函数返回表达式中非空值的计数,它可以用于数字和字符类型的列。 另外,也可以使用星号(*)作为COUNT()函数的表达式,使用星号可以不必指定特定的列而计 算所有的行数。

2.分组查询

      分组查询就是将表中的数据通过GROUPBY子句分类组合,再根据需要得到统计信息,如果需 要对分组结果进行筛选,只显示满足限定条件的组,需要使用HAVNG子句。

      不难理解,在使用GROUPBY关键字时,在SELECT列表中可以指定的项目是有限的,SELECT 语句中仅允许以下几项。

> 被分组的列。

> 为每个分组返回一个值的表达式,如用一个列名作为参数的聚合函数。

      当GROUPBY子句中使用HAVING子句时,查询结果只返回满足HAVING条件的组。在一个T-SOL 语句中可以有WHERE子句和HAVNG子句,HAVNG子句与WHERE子句类似,均用于设置限定条件。 但HAVING子句和WHERE子句的作用有如下区别。

> WHERE子句的作用是在对查询结果进行分组前,根据WHERE条件筛选数据,条件中不能包 含聚合函数。

> HAVNG子句的作用是在分组之后筛选满足条件的组,条件中经常包含聚合函数,也可以使 用多个分组标准进行分组。

      当WHERE和HAVING同在一个SELECT语句中使用时,执行顺序为“WHERE→GROUP BY一HAVING”. 案例4.12查询employee表中平均工资小于10 000的职务,前提是员工段誉不计算在内。

4.1.5数学函数

数学函数用于对数值进行代数运算,由于数学函数数量众多,不可能全部列举,如表4-4所示, 列出了 SOL Server 中常用的数学函数。

实验环境

     BDQN公司有一台已经安装了 SOL Server 2016的服务器,bdqn数据库中包含products表,表中内容如图所示。

products 表 

需求描述

> 查询出厂日期晚于2017年4月的水果信息。

> 分组查询所有水果、蔬菜,坚果的总成本。

> 查询所有水果的名称和出厂日期,以特定格式拼接字符串,如“西瓜的出厂日期是:2017/05/06”。

> 查询所有蔬菜的平均成本。

查询出厂日期晚于2017年4月的坚果信息。

select 名称,出厂日期 as '晚于2017年4月出厂'
from products
where 种类='坚果' and 出厂日期<='2017-03-31'

查询结果,没有该类水果

分组查询所有水果,蔬菜,坚果的总成本。

select 种类,sum(成本) as 总成本 from products group by 种类

查询结果

查询所有水果的名称和出厂日期,以特定格式拼接字符串,如“西瓜的出厂日期是:2017/05/06

select 名称+' 的出厂日期是:'+convert(nvarchar(10),出厂日期,111) from products
where 种类='水果'

查询结果

查询所有蔬菜的平均成本。

select 种类,avg(成本) as 蔬菜平均成本 from products group by 种类 having 种类='蔬菜'

查询结果

相关文章:

SQL Server 数据库,使用函数查询统计信息

4.1 在查询中使用函数 在前面章节已经学习了一些简单的增、删、改、查询的T-SOL.语句&#xff0c;但是为了更方便快捷地完 成大量的任务&#xff0c;SOLServer提供了一些内部函数&#xff0c;可以和SOLServer的SELECT语句联合使用&#xff0c;也可 以与UPDATE和INSERT一起使用&…...

mysql区分大小写吗

mysql在windows下默认是不区分大小写的&#xff0c;在linux下默认是区分大小写的。 所以&#xff0c;为了避免出问题&#xff0c;许多公司的数据库编程规范中明确规定&#xff1a;库名、表名、列名、索引名一律小写&#xff0c;不同单词之间以下划线分割&#xff0c;且控制在3…...

HarmonyOS 开发案例分享:万能卡片也能用来玩游戏

一、前言 作为一名开发爱好者&#xff0c;从大了讲&#xff0c;我学习并进行 HarmonyOS 相关开发是为了能为鸿蒙生态建设尽一份绵薄之力&#xff0c;从小了讲&#xff0c;就是为了自己的兴趣。而万能卡片是一个让我非常感兴趣的东西。 很多时候我跟别人解释什么是万能卡片&…...

Could NOT find resource [logback-test.xml]

修改 之后就可以正常启动了...

11.28 C++作业

提示并输入一个字符串&#xff0c;统计该字符中大写、小写字母个数、数字个数、空格个数以及其他字符个数 要求使用C风格字符串完成 #include <iostream>using namespace std;int main() {string str;cout << "请输入一个字符串&#xff1a;" <<…...

126. 单词接龙 II

126. 单词接龙 II 需要注意的是&#xff0c;由于要找最短路径&#xff0c;连接 dot 与 lot 之间的边就不可以被记录下来&#xff0c;同理连接 dog 与 log 之间的边也不可以被记录。这是因为经过它们的边一定不会是最短路径。因此在广度优先遍历的时候&#xff0c;需要记录的图…...

SpringBoot+SSM项目实战 苍穹外卖(2)

继续上一节的内容&#xff0c;本节完成新增员工、员工分页查询、启用禁用员工账号、编辑员工、导入分类模块功能代码。 目录 新增员工(完整流程分为以下五个部分)需求分析和设计代码开发功能测试代码完善 (ThreadLocal 线程局部变量)代码提交 员工分页查询代码完善 扩展Spring …...

vue常见优化手段

永远不要过早优化 why&#xff1f;过早优化的代价就是开发时间变长&#xff0c;开发成本增加&#xff0c;它会慢慢的让我们的代码变得不可阅读&#xff0c;难以维护&#xff1b;这些都是优化带来的代价。有句话是这样说的&#xff1a;命运馈赠的礼物&#xff0c;早已在暗中标好…...

vue3通过v-model实现父子组件通信

单一值传递 父组件 <template><div ><h1>v-model实现父子组件通讯</h1><hr><child1 v-model"num"></child1><!-- 上下两个是等价的 --><child1 :modelValue"num" update:modelValue"handle&quo…...

java设计模式学习之【桥接模式】

文章目录 引言桥接模式简介定义与用途&#xff1a;实现方式 使用场景优势与劣势桥接模式在Spring中的应用绘图示例代码地址 引言 想象你正在开发一个图形界面应用程序&#xff0c;需要支持多种不同的窗口操作系统。如果每个系统都需要写一套代码&#xff0c;那将是多么繁琐&am…...

prometheus|云原生|kubernetes内部安装prometheus

架构说明&#xff1a; prometheus是云原生系统内的事实上的监控标准&#xff0c;而kubernetes集群内部自然还是需要就地取材的部署prometheus服务了 那么&#xff0c;prometheus-server部署的方式其实是非常多的&#xff0c;比如&#xff0c;kubesphere集成方式&#xff0c;h…...

利用Python中的Manim进行数学绘画和创作

相信很多同学就算没听过3Blue1Brown&#xff0c;也一定曾看过他们出品的视频&#xff0c;其从独特的视觉角度解说各种数学概念&#xff0c;内容包括线性代数、微积分、神经网络、傅里叶变换以及四元数等晦涩难懂的知识点。例如最火的《线性代数本质》系列视频。 那么这些视频是…...

Uniapp

UniApp是一个强大的跨平台应用开发框架 随着移动互联网的快速发展&#xff0c;跨平台应用开发成为了一个重要的需求。UniApp就是一个能够满足这一需求的强大框架。本文将介绍UniApp的基本概念、优势、使用方法和未来发展。 一、UniApp概述 UniApp是一个基于Vue.js开发的跨平…...

HNU-青蛙与蚊子

【问题描述】 有 n 只青蛙位于坐标轴 OX 上&#xff0c;对于每只青蛙&#xff0c;有两个已知值 xi、ti&#xff0c;表示第 i 只青蛙在坐标的位置&#xff08;各不相同&#xff09;以及它的舌头的长度。同样有 m 只蚊子一只接一只的落到坐标轴上&#xff0c;对于每只蚊子&#x…...

【新论文】【模型攻击】DiffAttack 针对基于扩散的对抗性净化的逃避攻击

DiffAttack: Evasion Attacks Against Diffusion-Based Adversarial Purification 作者: Mintong Kang; Dawn Song; Bo Li 链接: http://arxiv.org/pdf/2311.16124v1 备注: Accepted to NeurIPS 2023 摘要: 基于扩散的净化防御利用扩散模型去除对抗样本的精心设计的扰动&#…...

【Redis缓存】RedisTemplate如何获取符合要求的key,批量获取key

RedisTemplate如何获取符合要求的key,批量获取key 一、方法/命令二、数据使用 一、方法/命令 如果使用命令的形式&#xff0c;输入以下命令即可 keys *如果使用RedisTemplate&#xff0c;则方法为 redisTemplate.keys()获取所有符合条件的key。 二、数据使用 redis中缓存了…...

springboot核心原理之@SpringbootApplication

1.SpringbootApplication Configuration标志的类 在spring ioc启动的时候就会加载创建这个类对象 EnableAutoConfiguration 中有两个注解 &#xff08;1&#xff09;AutoConfigurationPackage 扫描主程序包(主程序main所在包及其子包) 可以看到这个类 &#xff1a; static c…...

阻抗匹配电阻原理及其应用

一、匹配电阻的作用 1、阻抗匹配 当信号频率比较高&#xff0c;上升沿比较陡时&#xff0c;电子信号经过阻抗不同的地方时也会产设反射。 PCB的单线阻抗一般会设计成50Ω&#xff0c;发射端阻抗一般是17到40&#xff0c;而接收端一般是MOS管的输入&#xff0c;阻抗是比较大的…...

IDEA2023安装教程(超详细)

文章目录 前言安装IntelliJ IDEA1. 下载IntelliJ IDEA2. 运行安装程序3. 选择安装路径4. 选择启动器设置5. 等待安装完成6. 启动IntelliJ IDEA7. 配置和设置8. 激活或选择许可证9. 开始使用 总结 前言 随着软件开发的不断发展&#xff0c;IntelliJ IDEA成为了许多开发人员首选…...

【MySql】悲观锁和乐观锁的介绍

一、并发控制 当程序中可能出现并发的情况时&#xff0c;就需要保证在并发情况下数据的准确性&#xff0c;以此确保当前用户和其他用户一起操作时&#xff0c;所得到的结果和他单独操作时的结果是一样的。这就叫做并发控制。并发控制的目的是保证一个用户的工作不会对另一个用…...

iOS 26 携众系统重磅更新,但“苹果智能”仍与国行无缘

美国西海岸的夏天&#xff0c;再次被苹果点燃。一年一度的全球开发者大会 WWDC25 如期而至&#xff0c;这不仅是开发者的盛宴&#xff0c;更是全球数亿苹果用户翘首以盼的科技春晚。今年&#xff0c;苹果依旧为我们带来了全家桶式的系统更新&#xff0c;包括 iOS 26、iPadOS 26…...

LeetCode - 394. 字符串解码

题目 394. 字符串解码 - 力扣&#xff08;LeetCode&#xff09; 思路 使用两个栈&#xff1a;一个存储重复次数&#xff0c;一个存储字符串 遍历输入字符串&#xff1a; 数字处理&#xff1a;遇到数字时&#xff0c;累积计算重复次数左括号处理&#xff1a;保存当前状态&a…...

2025 后端自学UNIAPP【项目实战:旅游项目】6、我的收藏页面

代码框架视图 1、先添加一个获取收藏景点的列表请求 【在文件my_api.js文件中添加】 // 引入公共的请求封装 import http from ./my_http.js// 登录接口&#xff08;适配服务端返回 Token&#xff09; export const login async (code, avatar) > {const res await http…...

【AI学习】三、AI算法中的向量

在人工智能&#xff08;AI&#xff09;算法中&#xff0c;向量&#xff08;Vector&#xff09;是一种将现实世界中的数据&#xff08;如图像、文本、音频等&#xff09;转化为计算机可处理的数值型特征表示的工具。它是连接人类认知&#xff08;如语义、视觉特征&#xff09;与…...

【配置 YOLOX 用于按目录分类的图片数据集】

现在的图标点选越来越多&#xff0c;如何一步解决&#xff0c;采用 YOLOX 目标检测模式则可以轻松解决 要在 YOLOX 中使用按目录分类的图片数据集&#xff08;每个目录代表一个类别&#xff0c;目录下是该类别的所有图片&#xff09;&#xff0c;你需要进行以下配置步骤&#x…...

BCS 2025|百度副总裁陈洋:智能体在安全领域的应用实践

6月5日&#xff0c;2025全球数字经济大会数字安全主论坛暨北京网络安全大会在国家会议中心隆重开幕。百度副总裁陈洋受邀出席&#xff0c;并作《智能体在安全领域的应用实践》主题演讲&#xff0c;分享了在智能体在安全领域的突破性实践。他指出&#xff0c;百度通过将安全能力…...

【JavaWeb】Docker项目部署

引言 之前学习了Linux操作系统的常见命令&#xff0c;在Linux上安装软件&#xff0c;以及如何在Linux上部署一个单体项目&#xff0c;大多数同学都会有相同的感受&#xff0c;那就是麻烦。 核心体现在三点&#xff1a; 命令太多了&#xff0c;记不住 软件安装包名字复杂&…...

图表类系列各种样式PPT模版分享

图标图表系列PPT模版&#xff0c;柱状图PPT模版&#xff0c;线状图PPT模版&#xff0c;折线图PPT模版&#xff0c;饼状图PPT模版&#xff0c;雷达图PPT模版&#xff0c;树状图PPT模版 图表类系列各种样式PPT模版分享&#xff1a;图表系列PPT模板https://pan.quark.cn/s/20d40aa…...

学习STC51单片机32(芯片为STC89C52RCRC)OLED显示屏2

每日一言 今天的每一份坚持&#xff0c;都是在为未来积攒底气。 案例&#xff1a;OLED显示一个A 这边观察到一个点&#xff0c;怎么雪花了就是都是乱七八糟的占满了屏幕。。 解释 &#xff1a; 如果代码里信号切换太快&#xff08;比如 SDA 刚变&#xff0c;SCL 立刻变&#…...

OPENCV形态学基础之二腐蚀

一.腐蚀的原理 (图1) 数学表达式&#xff1a;dst(x,y) erode(src(x,y)) min(x,y)src(xx,yy) 腐蚀也是图像形态学的基本功能之一&#xff0c;腐蚀跟膨胀属于反向操作&#xff0c;膨胀是把图像图像变大&#xff0c;而腐蚀就是把图像变小。腐蚀后的图像变小变暗淡。 腐蚀…...