当前位置: 首页 > 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;所得到的结果和他单独操作时的结果是一样的。这就叫做并发控制。并发控制的目的是保证一个用户的工作不会对另一个用…...

零门槛NAS搭建:WinNAS如何让普通电脑秒变私有云?

一、核心优势&#xff1a;专为Windows用户设计的极简NAS WinNAS由深圳耘想存储科技开发&#xff0c;是一款收费低廉但功能全面的Windows NAS工具&#xff0c;主打“无学习成本部署” 。与其他NAS软件相比&#xff0c;其优势在于&#xff1a; 无需硬件改造&#xff1a;将任意W…...

label-studio的使用教程(导入本地路径)

文章目录 1. 准备环境2. 脚本启动2.1 Windows2.2 Linux 3. 安装label-studio机器学习后端3.1 pip安装(推荐)3.2 GitHub仓库安装 4. 后端配置4.1 yolo环境4.2 引入后端模型4.3 修改脚本4.4 启动后端 5. 标注工程5.1 创建工程5.2 配置图片路径5.3 配置工程类型标签5.4 配置模型5.…...

Leetcode 3576. Transform Array to All Equal Elements

Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接&#xff1a;3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到&#xf…...

Python爬虫实战:研究feedparser库相关技术

1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的信息资源。RSS(Really Simple Syndication)作为一种标准化的信息聚合技术,被广泛用于网站内容的发布和订阅。通过 RSS,用户可以方便地获取网站更新的内容,而无需频繁访问各个网站。 然而,互联网…...

YSYX学习记录(八)

C语言&#xff0c;练习0&#xff1a; 先创建一个文件夹&#xff0c;我用的是物理机&#xff1a; 安装build-essential 练习1&#xff1a; 我注释掉了 #include <stdio.h> 出现下面错误 在你的文本编辑器中打开ex1文件&#xff0c;随机修改或删除一部分&#xff0c;之后…...

如何在看板中有效管理突发紧急任务

在看板中有效管理突发紧急任务需要&#xff1a;设立专门的紧急任务通道、重新调整任务优先级、保持适度的WIP&#xff08;Work-in-Progress&#xff09;弹性、优化任务处理流程、提高团队应对突发情况的敏捷性。其中&#xff0c;设立专门的紧急任务通道尤为重要&#xff0c;这能…...

以光量子为例,详解量子获取方式

光量子技术获取量子比特可在室温下进行。该方式有望通过与名为硅光子学&#xff08;silicon photonics&#xff09;的光波导&#xff08;optical waveguide&#xff09;芯片制造技术和光纤等光通信技术相结合来实现量子计算机。量子力学中&#xff0c;光既是波又是粒子。光子本…...

Fabric V2.5 通用溯源系统——增加图片上传与下载功能

fabric-trace项目在发布一年后,部署量已突破1000次,为支持更多场景,现新增支持图片信息上链,本文对图片上传、下载功能代码进行梳理,包含智能合约、后端、前端部分。 一、智能合约修改 为了增加图片信息上链溯源,需要对底层数据结构进行修改,在此对智能合约中的农产品数…...

嵌入式常见 CPU 架构

架构类型架构厂商芯片厂商典型芯片特点与应用场景PICRISC (8/16 位)MicrochipMicrochipPIC16F877A、PIC18F4550简化指令集&#xff0c;单周期执行&#xff1b;低功耗、CIP 独立外设&#xff1b;用于家电、小电机控制、安防面板等嵌入式场景8051CISC (8 位)Intel&#xff08;原始…...

数学建模-滑翔伞伞翼面积的设计,运动状态计算和优化 !

我们考虑滑翔伞的伞翼面积设计问题以及运动状态描述。滑翔伞的性能主要取决于伞翼面积、气动特性以及飞行员的重量。我们的目标是建立数学模型来描述滑翔伞的运动状态,并优化伞翼面积的设计。 一、问题分析 滑翔伞在飞行过程中受到重力、升力和阻力的作用。升力和阻力与伞翼面…...