写点什么

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

作者:小万哥
  • 2023-11-22
    广东
  • 本文字数:1950 字

    阅读完需:约 6 分钟

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_nameWHERE condition;
SELECT MAX(column_name)FROM table_nameWHERE condition;
复制代码

演示数据库

以下是示例中使用的 Products 表的一部分:


设置列名(别名)

当使用 MIN()或 MAX()函数时,返回的列默认将命名为 MIN(field)或 MAX(field)。要为列指定新名称,请使用 AS 关键字:


示例:


SELECT MIN(Price) AS SmallestPriceFROM Products;
复制代码


这将返回名为"SmallestPrice"的列,其中包含 Products 表中的最低价格。

SQL COUNT() 函数

SQL 中的COUNT()函数用于返回符合指定条件的行数,通常用于统计行的数量。以下是它的用法和示例:

示例

查找Products表中的产品总数:


SELECT COUNT(*)FROM Products;
复制代码

语法

COUNT()函数的一般语法如下:


SELECT COUNT(column_name)FROM table_nameWHERE condition;
复制代码

演示数据库

以下是示例中使用的Products表的一部分:


添加 WHERE 子句

您可以添加WHERE子句以指定条件:


示例


查找价格高于 20 的产品数量:


SELECT COUNT(ProductID)FROM ProductsWHERE Price > 20;
复制代码

指定列名

您可以指定列名而不是使用星号(*)。


如果指定列名,将不会计算NULL值。


示例


查找ProductName不为NULL的产品数量:


SELECT COUNT(ProductName)FROM Products;
复制代码


如果表中包含NULL值,您可以使用IS NOT NULL条件来排除NULL值。例如:


SELECT COUNT(ProductName)FROM ProductsWHERE 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_nameWHERE condition;
复制代码

演示数据库

以下是示例中使用的OrderDetails表的一部分:


添加 WHERE 子句

您可以添加WHERE子句以指定条件:


示例


返回具有ProductID为 11 的产品所生成的订单数量:


SELECT SUM(Quantity)FROM OrderDetailsWHERE ProductID = 11;
复制代码

使用别名

您可以使用AS关键字为总结列指定别名。


示例


将列命名为 "总计":


SELECT SUM(Quantity) AS totalFROM OrderDetails;
复制代码


使用别名可以使结果集的列名更具可读性。

使用表达式的 SUM()

SUM()函数内的参数也可以是一个表达式。


如果我们假设OrderDetails列中的每个产品价格为 10 美元,我们可以通过将每个数量乘以 10 来找到以美元计算的总收入:


示例


SUM()括号内使用表达式:


SELECT SUM(Quantity * 10)FROM OrderDetails;
复制代码


我们还可以将OrderDetails表与Products表连接以找到实际金额,而不是假定为 10 美元:


示例


OrderDetailsProducts连接,并使用SUM()查找总金额:


SELECT SUM(Price * Quantity)FROM OrderDetailsLEFT JOIN Products ON OrderDetails.ProductID = Products.ProductID;
复制代码

SQL AVG() 函数

SQL 中的AVG()函数用于返回数值列的平均值。通常,它用于计算某一列的平均值。以下是AVG()函数的用法和示例:

示例

查找所有产品的平均价格:


SELECT AVG(Price)FROM Products;
复制代码

语法

AVG()函数的一般语法如下:


SELECT AVG(column_name)FROM table_nameWHERE condition;
复制代码

演示数据库

以下是示例中使用的Products表的一部分:


添加 WHERE 子句

您可以添加WHERE子句以指定条件:


示例


返回类别 1 中产品的平均价格:


SELECT AVG(Price)FROM ProductsWHERE CategoryID = 1;
复制代码

使用别名

您可以使用AS关键字为平均列指定别名。


示例


将列命名为 "平均价格":


SELECT AVG(Price) AS [平均价格]FROM Products;
复制代码

高于平均价格

要列出所有价格高于平均价格的记录,我们可以在子查询中使用AVG()函数:


示例


返回价格高于平均价格的所有产品:


SELECT * FROM ProductsWHERE Price > (SELECT AVG(Price) FROM Products);
复制代码


这将返回所有价格高于平均价格的产品。

最后

为了方便其他设备和平台的小伙伴观看往期文章:公众号搜索Let us Coding,或者扫描下方二维码,关注公众号,即可获取最新文章。


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



发布于: 刚刚阅读数: 5
用户头像

小万哥

关注

代码如人生 2023-02-09 加入

编程爱好者

评论

发布
暂无评论
SQL 中的 MIN 和 MAX 以及常见函数详解及示例演示_MySQL_小万哥_InfoQ写作社区