Mysql进阶四:常见函数-分组函数

2023-11-01

Mysql进阶四:常见函数-分组函数

分组函数:常用于统计


1.内容:sum max min count avg

2.特点:
  1. sum avg 用于处理数值型
    max min 用于处理任何数据类型
    count 适用处理任何数据类型,用于计算非空数据的类型

2.分组函数是否忽略null值 以上分组函数全部都都忽略null值


3.可以和distinct去重搭配使用


4.count的使用:广泛用于计算非空行数(当且仅当一行所有数据都为null时,才不会计入行数)


5.和分组函数搭配使用字段要求是group by后的字段


1. 简单使用
USE myemployees;

SELECT SUM(salary) FROM employees;
SELECT AVG(salary) FROM employees;
SELECT MIN(salary) FROM employees;
SELECT MAX(salary) FROM employees;
SELECT COUNT(salary) FROM employees;
 SELECT SUM(salary) 和,AVG(salary) 平均  
 FROM employees;

2.参数支持的类型

SUM() AVG() 支持数值型数据

  • 字符串使用无意义
    sqlyog虽然输出为0,但是并不代表正确,事实上数据库并不建议我们这样使用
验证:
SELECT SUM(last_name),AVG(last_name) 
FROM employees;
  • 日期使用无意义
验证:
SELECT SUM(hiredate),AVG(hiredate) 
FROM employees;
  • MAX() MIN()支持字符型、日期
SELECT MAX(last_name),MIN(last_name) 
FROM employees;

SELECT MAX(hiredate),MAX(hiredate) 
FROM employees;

3.忽略NULL
SELECT commission_pct 
FROM employees;
输出为107行数据
SELECT SUM(commission_pct),AVG(commission_pct) 
FROM employees;
输出为  7.80  0.222857

4.和DISTINCT搭配使用
SELECT SUM(DISTINCT salary), SUM(salary) 
FROM employees;

SELECT COUNT(salary),COUNT(DISTINCT salary) 
FROM employees;

5.count的使用
SELECT COUNT(salary) 
FROM employees;

用于计算行数

SELECT COUNT(*) 
FROM employees;


SELECT COUNT(1) 
FROM employees;

效率分析:

  • MYISAM 存储引擎中,COUNT(*) 效率最高
  • INNODB 存储引擎下,COUNT(*) 和COUNT(1)效率差不多,比COUNT(字段) 要高一点

6.和分组函数一同使用查询的字段有限制

下面这种写法有误(不规范结果),因为AVG结果是一个,而employee_id则是107个

SELECT AVG(salary) ,employee_id 
FROM employees;

测试题:

1.查询公司员工工资最大值、最小值、平均值、总和
2.查询员工表中的最大入职时间和最小入职时间相差的总天数(起别名为:天差)
3.查询部门编号为90的员工个数


答案:
SELECT MAX(salary),MIN(salary),AVG(salary),SUM(salary) 
FROM employees;
SELECT DATEDIFF (MAX(hiredate),MIN(hiredate)) 天差
FROM employees;

SELECT COUNT(*)
FROM employees;
WHERE employee_id = 90

第三小题:注意格式,是where在from后面,我第一遍写的时候就弄错了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Mysql进阶四:常见函数-分组函数 的相关文章

  • Preg_replace() 删除除查询结尾之外的所有内容

    首先 为我糟糕的英语感到抱歉 我有这样的疑问 SELECT t1 SELECT COUNT FROM table a t2 WHERE t1 id t2 id c AND t2 status 1 AS aula FROM table c t
  • MySQL 全文搜索不适用于某些单词,例如“house”

    我已经在 3 个字段中的一小部分记录上设置了全文索引 也尝试了 3 个字段的组合 并得到了相同的结果 有些单词返回结果很好 但某些单词如 house 和 澳大利亚 不这样做 有趣的是 澳大利亚 和 家乡 这样做 这似乎是奇怪的行为 如果我添
  • PHP PDO相关:更新SQL语句未更新数据库内容

    我正在尝试使用准备好的语句来实现更新语句PHP http en wikipedia org wiki PHP脚本 但它似乎没有更新数据库中的记录 我不确定为什么 所以如果您能分享一些见解 我将不胜感激 Code query UPDATE D
  • MySQL 存储过程将值分配给 select 语句中的多个变量

    这是我的存储过程 我在为声明的变量赋值时遇到问题 当我执行它时 插入和更新命令工作正常 但声明变量的值保持为 0 但我在数据库中有一些价值 我怎样才能正确地做到这一点 BEGIN DECLARE PaidFee INT DEFAULT 0
  • 社交应用程序的数据库设计和优化注意事项

    通常的情况 我有一个简单的应用程序 允许人们上传照片并关注其他人 因此 每个用户都会有类似 墙 或 活动源 的东西 他或她可以在其中看到他 她的朋友 他或她关注的人 上传的最新照片 大多数功能都很容易实现 然而 当涉及到这个历史活动源时 由
  • 对于数据库来说,选择正确的数据类型会影响性能吗?

    如果是这样 为什么 我的意思是 tinyint 的搜索速度比 int 快吗 如果是这样 性能上的实际差异是什么 是的 根据数据类型 它确实有所不同 int vs tinyint不会在速度上产生明显的差异 但会在数据大小上产生差异 假设tin
  • 如何在 phpmyadmin 中创建 MySQL 触发器

    我想在 MySQL 中创建一个触发器 我运行以下命令 mysql gt delimiter mysql gt CREATE TRIGGER before insert money BEFORE INSERT ON money gt FOR
  • 无法启动 MySQL 服务器 - 控制进程退出并出现错误代码

    我的 mysql 服务器停止后无法启动 命令使用 sudo etc init d mysql restart Error 重新启动 mysql 通过 systemctl mysql serviceJob for mysql service
  • 如何使用 MySQL 的 LOAD DATA LOCAL INFILE 在导入 CSV 时将字符串日期更改为 MySQL 日期格式

    我正在使用 MySQL 的 LOAD DATA LOCAL INFILE SQL 语句将数据从 CSV 文件加载到现有数据库表中 下面是一个 SQL 语句示例 LOAD DATA LOCAL INFILE file csv INTO TAB
  • 当sql连接中存在两个同名列时,如何从一个表列中获取值

    当我连接两个具有相同名称列的表时 我目前面临着尝试获取值的问题 例如 table1 date和table2 date 每个表中的日期不同 我将如何获取 日期 本例中的表1 我目前正在跑步 while row mysqliquery gt f
  • 截断 Mysql 表 Cron 作业?

    我在如何使用 cron 作业截断 Mysql 表时遇到了一些麻烦 无论我尝试什么 我似乎都无法让数据库清除表格 感谢您的帮助 mysql uderp example pexample hlocalhost Dexample e TRUNCA
  • 阻止注销页面后的后退按钮

    我有 php 注销页面 当用户单击注销链接时 请参阅此页面并重定向到索引页面 但是当单击后退按钮时 我会看到带有用户数据的上一页 当然 当我刷新页面时 我看不到以前的页面和数据 我在单击注销并单击后退按钮后检查了其他代码 drupal 但我
  • 为什么我的 if 语句没有按我预期的方式工作?

    我正在尝试实现以下目标 我向我的 SQL 数据库询问使用SELECT FROM subjects 这样做之后我要求使用数组mysqli fetch assoc 在那之前一切都很好 现在的问题是 当我尝试在每个循环中修改 genero 的值
  • MySQL PHP邮政编码比较具体距离

    我试图找出比较一个邮政编码 用户提供的 和一大堆其他邮政编码 现在大约有 200 个邮政编码 之间的距离的最有效方法 相对于加载时间 但它会随着时间的推移而增加 我不需要任何精确的东西 只是在球场上 我下载了整个美国的邮政编码 csv 文件
  • Mysql 中 UNION 子句的替代方案

    我有两张桌子 表 a 表 b table a ID 1 2 3 4 5 7 table b ID 2 3 4 5 6 我必须得到这样的输出而无需UNION命令 ID 1 2 3 4 5 6 7 注意 我有一个联合解决方案 select fr
  • Laravel leftJoin 仅右表的最后一条记录

    我是 Laravel 的新手 我有两张桌子 1 产品 2 价格 products id product int p key name varchar prices id price int p key id product int
  • MySQL Connector C/C API - 使用特殊字符进行查询

    我是一个 C 程序 我有一个接受域名参数的函数 void db domains query char name 使用 mysql query 我测试数据库中是否存在域名 如果不是这种情况 我插入新域名 char query 400 spri
  • 如何使用 vitess 仅对特定表进行分片

    我创建了一个包含三个表的未分片键空间 现在我想对前两个表的键空间进行分片 但不想对第三个表进行分片 如何才能做到这一点 Vitess 文档不包含任何与此相关的信息或示例 请帮忙 Thanks vitess 中的垂直分片与水平分片类似 您应该
  • 比特纳米。重置mysql根密码

    我如何重置 MySQL 中的 root 密码和帐户 因为我按照如何为其他服务器授予权限的说明操作 并且意外地将 root 用户 Mysql 绑定到其他 IP 地址 现在看来我无法在 localhost 上以管理员身份登录 Thanks 您有
  • 如何从shell脚本自动登录MySQL?

    我有一个 MySQL 服务器 其中有一个用户和密码 我想在 shell 脚本中执行一些 SQL 查询而不指定密码 如下所示 config sh MYSQL ROOT root MYSQL PASS password mysql sh sou

随机推荐

  • 什么是期货交易入门知识(生猪期货交易入门知识)

    什么是期货交易简介 Futures 英文名称是Futures 与现货完全不同 现货是可以交易的实物商品 商品 债券等是标的标准化交易合约 因此 标的物可以是商品 例如黄金 原油 农产品 或金融工具 期货交易是在现货交易的基础上 以远期合约交
  • Java 枚举

    1 枚举概述 枚举是java中的一种类型 用来表示固定且有限个的对象 并将其一个一个列举出来 使用场景 星期 Monday 星期一 Sunday 星期天 性别 Man 男 Woman 女 季节 Spring 春节 Winter 冬天 支付方
  • js中 的模块化 导入、导出 整理

    参考1 参考2 module exports与exports是CommonJS的规范 export与export default是es6规范 require 是 AMD规范引入方式 import是es6的一个语法标准 小程序中也可以使用 i
  • 选特化还是重载

    一个函数模板即有特化版又有重载版 编译器会选哪个 以下代码来自 为什么不要特化函数模版 的例3 1 include lt iostream gt 2 3 using namespace std 4 5 template lt class T
  • open-vm-tools与VMware Tools

    安装VMware Tools经常会出现兼容性不好 系统之间复制文件失灵 并且安装时提示建议使用open vm tools 于是放弃vmware tools的安装 尝试使用open vm tools open vm tools 是 VMwar
  • 浅谈汇编器、编译器和解释器

    作者 硬核老王 简单介绍一下编程方式的历史演变 Erik O shaughnessy 作者 在计算机诞生不久的早期年代 硬件非常昂贵 而程序员比较廉价 这些廉价程序员甚至都没有 程序员 这个头衔 并且常常是由数学家或者电气工程师来充当这个角
  • 大型语言模型(LLMs)的幻觉问题【Answer From chatGPT】

    减轻大型语言模型 LLMs 的幻觉问题是一个重要的研究领域 以下是一些减轻LLMs幻觉的方法和建议 更好的数据筛选和预处理 在训练LLMs之前 可以通过更仔细的数据筛选和预处理来减轻幻觉 删除或修复训练数据中的不准确信息和虚假关联可以有助于
  • 新冠肺炎疫情实时数据查询

    一 接口介绍 本接口数据收集于百度 丁香园 无糖科技等网站 感谢参与收集数据的广大网友 数据均由人工收集 虽经细心筛查但不能保证没有错漏之处 仅可作为参考使用 二 接入点功能 今日肺炎疫情明细 回最新的国内covid 19疫情数据 包括各地
  • C#中,处理JSON文件(解析与生成)

    建议用控制台编译方式 首先 添加引用 System Web Extensions 添加Newtonsoft Json库 并且需要应用命名空间 using System Web Script Serialization using Newto
  • Java 重试机制导致重复消费_RocketMQ重试机制及消息幂代码实例解析

    这篇文章主要介绍了RocketMQ重试机制及消息幂代码实例解析 文中通过示例代码介绍的非常详细 对大家的学习或者工作具有一定的参考学习价值 需要的朋友可以参考下 一 重试机制 1 由于MQ经常处于复杂的分布式系统中 考虑网络波动 服务宕机
  • Ubuntu安装mysql以及配置远程连接

    1 安装mysql apt get install mysql server 查看mysql是否安装成功 dpkg l grep mysql server 2 修改mysql root密码 进入mysql mysql u root p 进入
  • 中文编码杂谈

    中文编码杂谈 桂南 编码问题的例子 在windows自带的notepad 记事本 程序中输入 联通 两个字 保存后再次打开 会发现 联通 不见了 代之以 的乱码 这是windows平台上典型的中文编码问题 即文件保存的时候是按照ANSI编码
  • win10配置系统默认utf-8编码

    最近在使用Gvim打开utf 8文件时 出现了中文乱码 于是想把系统默认编码从gbk修改为utf 8 在Win10设置中 系统设置 gt 时间和语言 gt 语言 gt 管理语言设置 gt 更改系统区域设置 gt 勾选Unicode UTF
  • 98-字节输出流写入数据到文件

    写入数据的原理 内存 gt 硬盘 java程序 JVM java虚拟机 OS 操作系统 OS调用系统自己写数据的方法 把数据写入到文件中 字节输出流的使用步骤 重点 1 创建对象 创建一个FileOutputStream对象 构造方法中传递
  • Linux系统:CentOS编译Linux内核

    目录 一 实验 1 下载内核 2 解压内核源码 3 配置依赖的环境 4 进入源码目录 使用make menuconfig开启菜单选项 手动选择内核功能 5 编译内核 6 安装模块 7 安装内核 8 验证新内核版本 一 实验 1 下载内核 1
  • 爬虫python代码-python爬虫(附源码)

    声明 本文内容皆来自网上 环境 ubuntu19 04 python3 x python包 requests bs4 beautifulsoup re urllib lxml os 下载方式 pip install 包名 ps 部分电脑未安
  • 牛顿柯特斯公式及复合形式、龙贝格求积公式,高斯勒让德求积公式

    数值积分的研究实现 牛顿柯特斯公式 柯特斯系数 各阶对应公式 当n 1时 对应的牛顿 柯特斯公式就是是梯形公式 当n 2时 对应的牛顿 柯特斯公式就是辛普森公式 当n 4时 对应的牛顿 柯特斯公式就是柯特斯公式 柯特斯系数表 核心代码实现
  • 从零开发区块链应用(十二)--以太坊余额查询

    文章目录 一 账户状态stateTrie 1 2 查询余额代码思路 1 3 余额查询流程 二 获取账户余额 2 1 代码解析 2 2 完整代码 三 获取账户代币余额 一 账户状态stateTrie Block Header Root 就是s
  • leetcode第五题-最长回文子字符串

    题目 给定一个字符串 s 找到 s 中最长的回文子串 你可以假设 s 的最大长度为 1000 示例 1 输入 babad 输出 bab 注意 aba 也是一个有效答案 示例 2 输入 cbbd 输出 bb 中心扩展算法 回文中心的两侧互为镜
  • Mysql进阶四:常见函数-分组函数

    Mysql进阶四 常见函数 分组函数 分组函数 常用于统计 1 内容 sum max min count avg 2 特点 sum avg 用于处理数值型 max min 用于处理任何数据类型 count 适用处理任何数据类型 用于计算非空