首页 > 数据库 >SQL 中的 MIN 和 MAX 以及常见函数详解及示例演示

SQL 中的 MIN 和 MAX 以及常见函数详解及示例演示

时间:2023-11-22 22:33:28浏览次数:41  
标签:函数 MIN MAX Price 示例 Products WHERE SELECT

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美元:

示例

OrderDetailsProducts连接,并使用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,或者扫描下方二维码,关注公众号,即可获取最新文章。

看完如果觉得有帮助,欢迎点赞、收藏关注

image

标签:函数,MIN,MAX,Price,示例,Products,WHERE,SELECT
From: https://www.cnblogs.com/xiaowange/p/17850507.html

相关文章

  • Ego_planner_swarm之minimum snap(jerk)代码解释
    首先是minimumsnap的理论推导过程https://blog.csdn.net/u011341856/article/details/121861930我对他的博客的一些笔记https://pan.quark.cn/s/8549109ff930#/list/share下面就是对高飞老师egoplanner中的minimumsnap(jerk)的注释解析#include<iostream>#include<traj......
  • Docker Swarm动态扩容MINIO集群
    需求背景当一个minio集群的磁盘不够用的时候,可以有两种方式,第一个通过扩磁盘,第二种增加机器。但是不管是哪种方式,都不能去动原来集群的启动方式,那样集群就起不来了,会一直提示类似下面这种报错,ERRORUnabletoinitializebackend:/data1driveisalreadybeingusedinanother......
  • ISOM 3029 - Computer Programming Using C++
    以下是C++程序的问题。作业的硬拷贝和软拷贝都应按时提交。全部的程序(.cpp文件)将被压缩并上传到“提交作业1”按钮。压缩文件应与您的学生一起命名编号,例如“ba12345_Ass1.zip”。问题1:彩票计划(50%)编写一个C++程序,在开始时输出一条问候信息,然后生成6个肯定信息对于彩票游......
  • python tkinter treeview 操作示例
    1.建立Treeviewfromtkinterimport*fromtkinter.ttkimport*root=Tk()#建立Treeviewcolumns=(('ID',50),('S_ID',50),('S_NAME',120),('B_NAME',120),('Date_Taken',100),......
  • Oracle、达梦:获取两个表中差异的数据:minus(减法)
    Oracle、达梦:获取两个表中差异的数据:minus(减法)mysql没有。需要用别的方式替换表结构必须一致,数据也必须一致才能减去真实意思:T_1中的数据减去T_2中的数据。返回还多余的数据相当于3-2=1、3-0=3。这个例子中的0、1、2、3表示的是一行一行的数据SELECT*fromT_1m......
  • C++ MiniZip实现目录压缩与解压
    Zlib是一个开源的数据压缩库,提供了一种通用的数据压缩和解压缩算法。它最初由Jean-LoupGailly和MarkAdler开发,旨在成为一个高效、轻量级的压缩库,其被广泛应用于许多领域,包括网络通信、文件压缩、数据库系统等。其压缩算法是基于DEFLATE算法,这是一种无损数据压缩算法,通常能够提供......
  • 基于go-zero的api网关示例
    以下是基于go-zero框架的API网关示例。这个示例包括一个简单的API网关,它接收HTTP请求,将请求路由到不同的服务,并返回响应。创建项目首先,在go-zero仓库中创建一个新的目录:mkdirapi-gatewaycdapi-gateway创建Go文件在api-gateway目录下创建以下三个文件:c......
  • Beamforming 原理和背景
    转自知乎 https://zhuanlan.zhihu.com/p/110251527关于Beamforming,现在越来越多的走入了实际生活中。最先将Beamforming带入实际生产生活中的应该是802.11n,但当时还是optional,而不是critical,直接导致大部分当时的产品没有上Beamforming技术。如今,技术的发展,Beamforming已经......
  • panjiachen的vue-admin-template中关闭eslint
    由于有语法检查,所以我想关闭eslint低版本:  在conf/index.js中将useEslint改为flase高版本:  在.eslintrc.js中有rules,这里边都是eslint的校验规则,如果你不想有校验,可以直接将rule括号中的规则都注释掉   ......
  • 前端项目实战叁佰伍拾陆react-admin和material ui-处理形成树状数据结构2
    dataProviders.getStyleTree('t_prod_category','t_prod_style').then((res:any)=>{console.log(res,"resssssssss")letarr:any=[]letarr1:any=[{key:0,title:"品类管理",......