SQL 中的 MIN 和 MAX 以及常见函数详解及示例演示
SQL MIN() 和 MAX() 函数
SQL中的MIN()函数和MAX()函数用于查找所选列的最小值和最大值,分别。以下是它们的用法和示例:
MIN() 函数
MIN()函数返回所选列的最小值。
示例:
查找Products表中的最低价格:
SELECT MIN(Price)
FROM Products;
MAX() 函数
MAX()函数返回所选列的最大值。
示例:
查找Products表中的最高价格:
SELECT MAX(Price)
FROM Products;
语法
MIN()和MAX()函数的一般语法如下:
SELECT MIN(column_name)
FROM table_name
WHERE condition;
SELECT MAX(column_name)
FROM table_name
WHERE condition;
演示数据库
以下是示例中使用的Products表的一部分:
| ProductID | ProductName | SupplierID | CategoryID | Unit | Price |
|---|---|---|---|---|---|
| 1 | Chais | 1 | 1 | 10 boxes x 20 bags | 18 |
| 2 | Chang | 1 | 1 | 24 - 12 oz bottles | 19 |
| 3 | Aniseed Syrup | 1 | 2 | 12 - 550 ml bottles | 10 |
| 4 | Chef Anton's Cajun Seasoning | 2 | 2 | 48 - 6 oz jars | 22 |
| 5 | Chef Anton's Gumbo Mix | 2 | 2 | 36 boxes | 21.35 |
设置列名(别名)
当使用MIN()或MAX()函数时,返回的列默认将命名为MIN(field)或MAX(field)。要为列指定新名称,请使用AS关键字:
示例:
SELECT MIN(Price) AS SmallestPrice
FROM Products;
这将返回名为"SmallestPrice"的列,其中包含Products表中的最低价格。
SQL COUNT() 函数
SQL中的COUNT()函数用于返回符合指定条件的行数,通常用于统计行的数量。以下是它的用法和示例:
示例
查找Products表中的产品总数:
SELECT COUNT(*)
FROM Products;
语法
COUNT()函数的一般语法如下:
SELECT COUNT(column_name)
FROM table_name
WHERE condition;
演示数据库
以下是示例中使用的Products表的一部分:
| ProductID | ProductName | SupplierID | CategoryID | Unit | Price |
|---|---|---|---|---|---|
| 1 | Chais | 1 | 1 | 10 boxes x 20 bags | 18 |
| 2 | Chang | 1 | 1 | 24 - 12 oz bottles | 19 |
| 3 | Aniseed Syrup | 1 | 2 | 12 - 550 ml bottles | 10 |
| 4 | Chef Anton's Cajun Seasoning | 2 | 2 | 48 - 6 oz jars | 22 |
| 5 | Chef Anton's Gumbo Mix | 2 | 2 | 36 boxes | 21.35 |
添加 WHERE 子句
您可以添加WHERE子句以指定条件:
示例
查找价格高于 20 的产品数量:
SELECT COUNT(ProductID)
FROM Products
WHERE Price > 20;
指定列名
您可以指定列名而不是使用星号(*)。
如果指定列名,将不会计算NULL值。
示例
查找ProductName不为NULL的产品数量:
SELECT COUNT(ProductName)
FROM Products;
如果表中包含NULL值,您可以使用IS NOT NULL条件来排除NULL值。例如:
SELECT COUNT(ProductName)
FROM Products
WHERE ProductName IS NOT NULL;
忽略重复项
您可以使用COUNT函数中的DISTINCT关键字来忽略重复项。
如果指定DISTINCT,具有相同值的行将被计为一行。
示例
Products表中有多少不同的价格:
SELECT COUNT(DISTINCT Price)
FROM Products;
使用别名
您可以使用AS关键字为计数列指定别名。
示例
将计数列命名为 "记录数":
SELECT COUNT(*) AS "记录数"
FROM Products;
使用别名可以使结果集的列名更具可读性。
SQL SUM() 函数
SQL中的SUM()函数用于返回数值列的总和,通常用于计算某一列的总值。以下是它的用法和示例:
示例
返回OrderDetails表中所有Quantity字段的总和:
SELECT SUM(Quantity)
FROM OrderDetails;
语法
SUM()函数的一般语法如下:
SELECT SUM(column_name)
FROM table_name
WHERE condition;
演示数据库
以下是示例中使用的OrderDetails表的一部分:
| OrderDetailID | OrderID | ProductID | Quantity |
|---|---|---|---|
| 1 | 10248 | 11 | 12 |
| 2 | 10248 | 42 | 10 |
| 3 | 10248 | 72 | 5 |
| 4 | 10249 | 14 | 9 |
| 5 | 10249 | 51 | 40 |
添加 WHERE 子句
您可以添加WHERE子句以指定条件:
示例
返回具有ProductID为11的产品所生成的订单数量:
SELECT SUM(Quantity)
FROM OrderDetails
WHERE ProductID = 11;
使用别名
您可以使用AS关键字为总结列指定别名。
示例
将列命名为 "总计":
SELECT SUM(Quantity) AS total
FROM OrderDetails;
使用别名可以使结果集的列名更具可读性。
使用表达式的 SUM()
SUM()函数内的参数也可以是一个表达式。
如果我们假设OrderDetails列中的每个产品价格为10美元,我们可以通过将每个数量乘以10来找到以美元计算的总收入:
示例
在SUM()括号内使用表达式:
SELECT SUM(Quantity * 10)
FROM OrderDetails;
我们还可以将OrderDetails表与Products表连接以找到实际金额,而不是假定为10美元:
示例
将OrderDetails与Products连接,并使用SUM()查找总金额:
SELECT SUM(Price * Quantity)
FROM OrderDetails
LEFT JOIN Products ON OrderDetails.ProductID = Products.ProductID;
SQL AVG() 函数
SQL中的AVG()函数用于返回数值列的平均值。通常,它用于计算某一列的平均值。以下是AVG()函数的用法和示例:
示例
查找所有产品的平均价格:
SELECT AVG(Price)
FROM Products;
语法
AVG()函数的一般语法如下:
SELECT AVG(column_name)
FROM table_name
WHERE condition;
演示数据库
以下是示例中使用的Products表的一部分:
| ProductID | ProductName | SupplierID | CategoryID | Unit | Price |
|---|---|---|---|---|---|
| 1 | Chais | 1 | 1 | 10 boxes x 20 bags | 18 |
| 2 | Chang | 1 | 1 | 24 - 12 oz bottles | 19 |
| 3 | Aniseed Syrup | 1 | 2 | 12 - 550 ml bottles | 10 |
| 4 | Chef Anton's Cajun Seasoning | 2 | 2 | 48 - 6 oz jars | 22 |
| 5 | Chef Anton's Gumbo Mix | 2 | 2 | 36 boxes | 21.35 |
添加 WHERE 子句
您可以添加WHERE子句以指定条件:
示例
返回类别1中产品的平均价格:
SELECT AVG(Price)
FROM Products
WHERE CategoryID = 1;
使用别名
您可以使用AS关键字为平均列指定别名。
示例
将列命名为 "平均价格":
SELECT AVG(Price) AS [平均价格]
FROM Products;
高于平均价格
要列出所有价格高于平均价格的记录,我们可以在子查询中使用AVG()函数:
示例
返回价格高于平均价格的所有产品:
SELECT * FROM Products
WHERE Price > (SELECT AVG(Price) FROM Products);
这将返回所有价格高于平均价格的产品。
最后
为了方便其他设备和平台的小伙伴观看往期文章:公众号搜索Let us Coding,或者扫描下方二维码,关注公众号,即可获取最新文章。
看完如果觉得有帮助,欢迎点赞、收藏和关注

SQL 中的 MIN 和 MAX 以及常见函数详解及示例演示的更多相关文章
- C#中抽象方法与虚方法的区别详解及示例
1. 抽象方法与虚方法的区别 先说两者最大的区别:抽象方法是需要子类去实现的.虚方法是已经实现了的,可以被子类覆盖,也可以不覆盖,取决于需求.因为抽象类无法实例化,所以抽象方法没有办法被调用,也就 ...
- SQL中的ON DUPLICATE KEY UPDATE使用详解
一:主键索引,唯一索引和普通索引的关系主键索引 主键索引是唯一索引的特殊类型. 数据库表通常有一列或列组合,其值用来唯一标识表中的每一行.该列称为表的主键. 在数据库关系图中为表定义一个主键将自动创建 ...
- SQL Server中通用数据库角色权限的处理详解
SQL Server中通用数据库角色权限的处理详解 前言 安全性是所有数据库管理系统的一个重要特征.理解安全性问题是理解数据库管理系统安全性机制的前提. 最近和同事在做数据库权限清理的事情,主要是删除 ...
- SQL Server中排名函数row_number,rank,dense_rank,ntile详解
SQL Server中排名函数row_number,rank,dense_rank,ntile详解 从SQL SERVER2005开始,SQL SERVER新增了四个排名函数,分别如下:1.row_n ...
- CSS中伪类及伪元素用法详解
CSS中伪类及伪元素用法详解 伪类的分类及作用: 注:该表引自W3School教程 伪元素的分类及作用: 接下来让博主通过一些生动的实例(之前的作业或小作品)来说明几种常用伪类的用法和效果,其他的 ...
- SVN组成中trunk,branches and tags功能用法详解
SVN组成中trunk,branches and tags功能用法详解 我相信初学开发在SVN作为版本管理时,都估计没可能考虑到如何灵活的运用SVN来管理开发代码的版本,下面我就摘录一篇文章来简单说 ...
- UIViewController中各方法调用顺序及功能详解
UIViewController中各方法调用顺序及功能详解 UIViewController中loadView, viewDidLoad, viewWillUnload, viewDidUnload, ...
- 单元测试系列之四:Sonar平台中项目主要指标以及代码坏味道详解
更多原创测试技术文章同步更新到微信公众号 :三国测,敬请扫码关注个人的微信号,感谢! 原文链接:http://www.cnblogs.com/zishi/p/6766994.html 众所周知Sona ...
- 详解Android中的四大组件之一:Activity详解
activity的生命周期 activity的四种状态 running:正在运行,处于活动状态,用户可以点击屏幕,是将activity处于栈顶的状态. paused:暂停,处于失去焦点的时候,处于pa ...
- opencv中 int main(int argc,char* argv[])详解
opencv中 int main(int argc,char* argv[])详解 argc是命令行总的参数个数 argv[]是argc个参数,其中第0个参数是程序的全名,以后的参数 ...
随机推荐
- 问题:AttributeError: module 'lib' has no attribute 'OpenSSL_add_all_algorithms'
分析 在使用支付宝沙箱时,报了这个错误,该问题是没有安装openssl包 解决 pip3 install pyOpenSSL 安装后再次运行如果还是报错,请降低加密库 pip install cryp ...
- ASP.NET Core 微信支付(四)【支付结果通知回调(未按照官方步骤) APIV3】
官方文档 支付通知API 证书和回调报文解密 参考资料 netcore 中没有Request.InputStream 理论实战 对于我来说,这个微信支付结果通知回调有两个难点. 难点一 一开始在想是怎 ...
- ubantu18.04使用APT安装go环境指令报错解决方案
在ubantu下使用sudo apt install golang-go指令安装go环境,安装过程没有报错,在使用时无法识别指令,报错如下: root@sh001:~# go env -w GOPRO ...
- MapStruct的一些常规用法
每天坚持写一篇原创文章. 使用过MapStruct之后,再也没用过BeanCopy来复制对象了.确实是非常好用的工具库. MapStruct是一个代码生成器,简化了不同的Java Bean之间映射的处 ...
- Redis系列:RDB内存快照提供持久化能力
★ Redis24篇集合 1 介绍 从上一篇的 <深刻理解高性能Redis的本质> 中可以知道, 我们经常在数据库层上加一层缓存(如Redis),来保证数据的访问效率. 这样性能确实也有了 ...
- Android学习之SQLite数据库存储
•引言 概念 SQLite数据库,和其他的SQL数据库不同, 我们并不需要在手机上另外安装一个数据库软件,Android系统已经集成了这个数据库: 特点 SQLite是一个轻量级的关系型数据库,运算速 ...
- TR069-STUN
原理 1.NAT穿越技术,为了解决NAT设备对P2P网络的通信限制 2.作用:检测网络中是否存在NAT设备,并获取两个通信端点经NAT设备分配的IP地址和端口号,然后建立一条可穿越NAT的P2P链 ...
- 摆脱鼠标系列 - Alt + N 快速切换vscode多个项目 - HotKeyP
摆脱鼠标系列 - Alt + N 快速切换vscode多个项目 用的软件是 HotKeyP 打开软件选择vscode vscode里面的 project那个插件也很好,但是需要打开vscode以后,这 ...
- 替换掉Chrome浏览器的新标签页【已做好自己的插件,并提供下载】
https://jingyan.baidu.com/article/fc07f9891b256312ffe5190a.html 我做好了自己的 Chrome 新插件 https://files.cnb ...
- 1.Arduino ESP32配置环境
ESP32开发板管理器地址 https://dl.espressif.com/dl/package_esp32_index.json // 无效时可以使用下面这个 https://raw.github ...