SQL 高级(9) 函数

SQL 高级(9) 函数

函数的语法

        内建 SQL 函数的语法是:

SELECT function(列) FROM 表

函数的类型         在 SQL 中,基本的函数类型和种类有若干种。函数的基本类型是:

  • Aggregate 函数 
  • Scalar 函数 

合计函数(Aggregate functions)         Aggregate 函数的操作面向一系列的值,并返回一个单一的值。

        注释:如果在 SELECT 语句的项目列表中的众多其它表达式中使用 SELECT 语句,则这个 SELECT 必须使用 GROUP BY 语句!

        “Persons” table (在大部分的例子中使用过)

NameAge
Adams, John38
Bush, George33
Carter, Thomas28

        在 SQL Server 中的合计函数

函数描述
AVG(column)返回某列的行数
BINARY_CHECKSUM 
CHECKSUM 
CHECKSUM_AGG 
COUNT(column)返回某列的行数(不包括NULL值)
COUNT(*)返回被选行数
COUNT(DISTINCT column)返回相异结果的数目
FIRST(column)返回在指定的域中第一个记录的值(SQLServer2000 不支持)
LAST(column)返回在指定的域中最后一个记录的值(SQLServer2000 不支持)
MAX(column)返回某列的最高值
MIN(column)返回某列的最低值
STDEV(column) 
STDEVP(column) 
SUM(column)返回某列的总和
VAR(column) 
VARP(column) 

Scalar 函数

        Scalar 函数的操作面向某个单一的值,并返回基于输入值的一个单一的值。

SQL AVG 函数

定义和用法         AVG 函数返回数值列的平均值。NULL 值不包括在计算中。

SQL AVG() 语法

SELECT AVG(column_name) FROM table_name

SQL AVG() 实例         我们拥有下面这个 “Orders” 表:

O_IdOrderDateOrderPriceCustomer
12008/12/291000Bush
22008/11/231600Carter
32008/10/05700Bush
42008/09/28300Bush
52008/08/062000Adams
62008/07/21100Carter

        现在,我们希望计算 “OrderPrice” 字段的平均值。

        我们使用如下 SQL 语句:

SELECT AVG(OrderPrice) AS OrderAverage FROM Orders

        结果集类似这样:

OrderAverage
950

        现在,我们希望找到 OrderPrice 值高于 OrderPrice 平均值的客户。

SELECT Customer FROM Orders
WHERE OrderPrice>(SELECT AVG(OrderPrice) FROM Orders)

        结果集类似这样:

Customer
Bush
Carter
Adams

SQL COUNT() 语法

SQL COUNT(column_name) 语法

        COUNT(column_name) 函数返回指定列的值的数目(NULL 不计入):

SELECT COUNT(column_name) FROM table_name

SQL COUNT(*)语法

        COUNT(*) 函数返回表中的记录数:

SELECT COUNT(*) FROM table_name

SQL COUNT(DISTINCT column_name) 语法

        COUNT(DISTINCT column_name) 函数返回指定列的不同值的数目:

SELECT COUNT(DISTINCT column_name) FROM table_name

        注释:COUNT(DISTINCT) 适用于 ORACLE 和 Microsoft SQL Server,但是无法用于 Microsoft Access。

SQL COUNT(column_name) 实例

        我们拥有下列 “Orders” 表:

O_IdOrderDateOrderPriceCustomer
12008/12/291000Bush
22008/11/231600Carter
32008/10/05700Bush
42008/09/28300Bush
52008/08/062000Adams
62008/07/21100Carter

        现在,我们希望计算客户 “Carter” 的订单数。 

SELECT COUNT(Customer) AS CustomerNilsen FROM Orders
WHERE Customer='Carter'

        以上 SQL 语句的结果是 2,因为客户 Carter 共有 2 个订单: 

CustomerNilsen
2

SQL COUNT(*) 实例 

        如果我们省略 WHERE 子句,比如这样: 

SELECT COUNT(*) AS NumberOfOrders FROM Orders

        结果集类似这样:

NumberOfOrders
6

SQL COUNT(DISTINCT column_name) 实例

        现在,我们希望计算 “Orders” 表中不同客户的数目。

SELECT COUNT(DISTINCT Customer) AS NumberOfCustomers FROM Orders

        结果集类似这样:

NumberOfCustomers
3

FIRST() 函数

        FIRST() 函数返回指定的字段中第一个记录的值。

        提示:可使用 ORDER BY 语句对记录进行排序。

SQL FIRST() 语法

SELECT FIRST(column_name) FROM table_name

SQL FIRST() 实例

        我们拥有下面这个 “Orders” 表:

O_IdOrderDateOrderPriceCustomer
12008/12/291000Bush
22008/11/231600Carter
32008/10/05700Bush
42008/09/28300Bush
52008/08/062000Adams
62008/07/21100Carter

        现在,我们希望查找 “OrderPrice” 列的第一个值。

SELECT FIRST(OrderPrice) AS FirstOrderPrice FROM Orders

        结果集类似这样:

FirstOrderPrice
1000

LAST() 函数

        LAST() 函数返回指定的字段中最后一个记录的值。

        提示:可使用 ORDER BY 语句对记录进行排序。

SQL LAST() 语法

SELECT LAST(column_name) FROM table_name

SQL LAST() 实例

        我们拥有下面这个 “Orders” 表:

O_IdOrderDateOrderPriceCustomer
12008/12/291000Bush
22008/11/231600Carter
32008/10/05700Bush
42008/09/28300Bush
52008/08/062000Adams
62008/07/21100Carter

        现在,我们希望查找 “OrderPrice” 列的最后一个值。

SELECT LAST(OrderPrice) AS LastOrderPrice FROM Orders

        结果集类似这样:

LastOrderPrice
100

MAX() 函数

        MAX 函数返回一列中的最大值。NULL 值不包括在计算中。

SQL MAX() 语法

SELECT MAX(column_name) FROM table_name

        注释:MIN 和 MAX 也可用于文本列,以获得按字母顺序排列的最高或最低值。 SQL MAX() 实例

        我们拥有下面这个 “Orders” 表:

O_IdOrderDateOrderPriceCustomer
12008/12/291000Bush
22008/11/231600Carter
32008/10/05700Bush
42008/09/28300Bush
52008/08/062000Adams
62008/07/21100Carter

        现在,我们希望查找 “OrderPrice” 列的最大值。

SELECT MAX(OrderPrice) AS LargestOrderPrice FROM Orders

        结果集类似这样:

LargestOrderPrice
2000

MIN() 函数

        MIN 函数返回一列中的最小值。NULL 值不包括在计算中。

SQL MIN() 语法

SELECT MIN(column_name) FROM table_name

        注释:MIN 和 MAX 也可用于文本列,以获得按字母顺序排列的最高或最低值。

SQL MIN() 实例

        我们拥有下面这个 “Orders” 表:

O_IdOrderDateOrderPriceCustomer
12008/12/291000Bush
22008/11/231600Carter
32008/10/05700Bush
42008/09/28300Bush
52008/08/062000Adams
62008/07/21100Carter

        现在,我们希望查找 “OrderPrice” 列的最小值。

SELECT MIN(OrderPrice) AS SmallestOrderPrice FROM Orders

        结果集类似这样:

SmallestOrderPrice
100

SUM() 函数

        SUM 函数返回数值列的总数(总额)。

SQL SUM() 语法

SELECT SUM(column_name) FROM table_name

SQL SUM() 实例

        我们拥有下面这个 “Orders” 表:

O_IdOrderDateOrderPriceCustomer
12008/12/291000Bush
22008/11/231600Carter
32008/10/05700Bush
42008/09/28300Bush
52008/08/062000Adams
62008/07/21100Carter

        现在,我们希望查找 “OrderPrice” 字段的总数。

SELECT SUM(OrderPrice) AS OrderTotal FROM Orders

        结果集类似这样:

OrderTotal
5700
    原文作者:SQL
    原文地址: https://blog.csdn.net/crazygolf/article/details/39100647
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞