SQL MIN() 和 MAX() 函数
SQL中的MIN()函数和MAX()函数用于查找所选列的最小值和最大值,分别。以下是它们的用法和示例:
MIN() 函数
MIN()函数返回所选列的最小值。
示例:
查找Products表中的最低价格:
sql
SELECT MIN(Price)
FROM Products;
MAX() 函数
MAX()函数返回所选列的最大值。
示例:
查找Products表中的最高价格:
sql
SELECT MAX(Price)
FROM Products;
语法
MIN()和MAX()函数的一般语法如下:
sql
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关键字:
示例:
sql
SELECT MIN(Price) AS SmallestPrice
FROM Products;
这将返回名为"SmallestPrice"的列,其中包含Products表中的最低价格。
SQL COUNT() 函数
SQL中的COUNT()
函数用于返回符合指定条件的行数,通常用于统计行的数量。以下是它的用法和示例:
示例
查找Products
表中的产品总数:
sql
SELECT COUNT(*)
FROM Products;
语法
COUNT()
函数的一般语法如下:
sql
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 的产品数量:
sql
SELECT COUNT(ProductID)
FROM Products
WHERE Price > 20;
指定列名
您可以指定列名而不是使用星号(*
)。
如果指定列名,将不会计算NULL
值。
示例
查找ProductName
不为NULL
的产品数量:
sql
SELECT COUNT(ProductName)
FROM Products;
如果表中包含NULL
值,您可以使用IS NOT NULL
条件来排除NULL
值。例如:
sql
SELECT COUNT(ProductName)
FROM Products
WHERE ProductName IS NOT NULL;
忽略重复项
您可以使用COUNT
函数中的DISTINCT
关键字来忽略重复项。
如果指定DISTINCT
,具有相同值的行将被计为一行。
示例
Products
表中有多少不同的价格:
sql
SELECT COUNT(DISTINCT Price)
FROM Products;
使用别名
您可以使用AS
关键字为计数列指定别名。
示例
将计数列命名为 "记录数":
sql
SELECT COUNT(*) AS "记录数"
FROM Products;
使用别名可以使结果集的列名更具可读性。
SQL SUM() 函数
SQL中的SUM()
函数用于返回数值列的总和,通常用于计算某一列的总值。以下是它的用法和示例:
示例
返回OrderDetails
表中所有Quantity
字段的总和:
sql
SELECT SUM(Quantity)
FROM OrderDetails;
语法
SUM()
函数的一般语法如下:
sql
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的产品所生成的订单数量:
sql
SELECT SUM(Quantity)
FROM OrderDetails
WHERE ProductID = 11;
使用别名
您可以使用AS
关键字为总结列指定别名。
示例
将列命名为 "总计":
sql
SELECT SUM(Quantity) AS total
FROM OrderDetails;
使用别名可以使结果集的列名更具可读性。
使用表达式的 SUM()
SUM()
函数内的参数也可以是一个表达式。
如果我们假设OrderDetails
列中的每个产品价格为10美元,我们可以通过将每个数量乘以10来找到以美元计算的总收入:
示例
在SUM()
括号内使用表达式:
sql
SELECT SUM(Quantity * 10)
FROM OrderDetails;
我们还可以将OrderDetails
表与Products
表连接以找到实际金额,而不是假定为10美元:
示例
将OrderDetails
与Products
连接,并使用SUM()
查找总金额:
sql
SELECT SUM(Price * Quantity)
FROM OrderDetails
LEFT JOIN Products ON OrderDetails.ProductID = Products.ProductID;
SQL AVG() 函数
SQL中的AVG()
函数用于返回数值列的平均值。通常,它用于计算某一列的平均值。以下是AVG()
函数的用法和示例:
示例
查找所有产品的平均价格:
sql
SELECT AVG(Price)
FROM Products;
语法
AVG()
函数的一般语法如下:
sql
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中产品的平均价格:
sql
SELECT AVG(Price)
FROM Products
WHERE CategoryID = 1;
使用别名
您可以使用AS
关键字为平均列指定别名。
示例
将列命名为 "平均价格":
sql
SELECT AVG(Price) AS [平均价格]
FROM Products;
高于平均价格
要列出所有价格高于平均价格的记录,我们可以在子查询中使用AVG()
函数:
示例
返回价格高于平均价格的所有产品:
sql
SELECT * FROM Products
WHERE Price > (SELECT AVG(Price) FROM Products);
这将返回所有价格高于平均价格的产品。
最后
为了方便其他设备和平台的小伙伴观看往期文章:公众号搜索Let us Coding
,或者扫描下方二维码,关注公众号,即可获取最新文章。
看完如果觉得有帮助,欢迎点赞、收藏 和关注