您的位置:首页 > 博客中心 > 数据库 >

SQL 高级(9) 函数

时间:2022-03-13 23:29

SELECT function(列) FROM 表 函数的类型         在 SQL 中,基本的函数类型和种类有若干种。函数的基本类型是:
  • Aggregate 函数 
  • Scalar 函数 
合计函数(Aggregate functions)         Aggregate 函数的操作面向一系列的值,并返回一个单一的值。
        注释:如果在 SELECT 语句的项目列表中的众多其它表达式中使用 SELECT 语句,则这个 SELECT 必须使用 GROUP BY 语句!
        "Persons" table (在大部分的例子中使用过)
SELECT AVG(column_name) FROM table_nameSQL AVG() 实例         我们拥有下面这个 "Orders" 表:
O_Id OrderDate OrderPrice Customer
1 2008/12/29 1000 Bush
2 2008/11/23 1600 Carter
3 2008/10/05 700 Bush
4 2008/09/28 300 Bush
5 2008/08/06 2000 Adams
6 2008/07/21 100 Carter
        现在,我们希望计算 "OrderPrice" 字段的平均值。
        我们使用如下 SQL 语句:
SELECT AVG(OrderPrice) AS OrderAverage FROM Orders
        结果集类似这样:
SELECT Customer FROM Orders WHERE OrderPrice>(SELECT AVG(OrderPrice) FROM Orders)        结果集类似这样:
SELECT COUNT(column_name) FROM table_nameSQL 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_Id OrderDate OrderPrice Customer
1 2008/12/29 1000 Bush
2 2008/11/23 1600 Carter
3 2008/10/05 700 Bush
4 2008/09/28 300 Bush
5 2008/08/06 2000 Adams
6 2008/07/21 100 Carter
        现在,我们希望计算客户 "Carter" 的订单数。 
SELECT COUNT(Customer) AS CustomerNilsen FROM Orders
WHERE Customer='Carter'
        以上 SQL 语句的结果是 2,因为客户 Carter 共有 2 个订单: 
SELECT COUNT(*) AS NumberOfOrders FROM Orders        结果集类似这样:
SELECT COUNT(DISTINCT Customer) AS NumberOfCustomers FROM Orders        结果集类似这样:
SELECT FIRST(column_name) FROM table_name SQL FIRST() 实例
        我们拥有下面这个 "Orders" 表:
O_Id OrderDate OrderPrice Customer
1 2008/12/29 1000 Bush
2 2008/11/23 1600 Carter
3 2008/10/05 700 Bush
4 2008/09/28 300 Bush
5 2008/08/06 2000 Adams
6 2008/07/21 100 Carter
        现在,我们希望查找 "OrderPrice" 列的第一个值。
SELECT FIRST(OrderPrice) AS FirstOrderPrice FROM Orders
        结果集类似这样:
SELECT LAST(column_name) FROM table_name SQL LAST() 实例
        我们拥有下面这个 "Orders" 表:
O_Id OrderDate OrderPrice Customer
1 2008/12/29 1000 Bush
2 2008/11/23 1600 Carter
3 2008/10/05 700 Bush
4 2008/09/28 300 Bush
5 2008/08/06 2000 Adams
6 2008/07/21 100 Carter
        现在,我们希望查找 "OrderPrice" 列的最后一个值。
SELECT LAST(OrderPrice) AS LastOrderPrice FROM Orders
        结果集类似这样: SELECT MAX(column_name) FROM table_name        注释:MIN 和 MAX 也可用于文本列,以获得按字母顺序排列的最高或最低值。 SQL MAX() 实例
        我们拥有下面这个 "Orders" 表:
O_Id OrderDate OrderPrice Customer
1 2008/12/29 1000 Bush
2 2008/11/23 1600 Carter
3 2008/10/05 700 Bush
4 2008/09/28 300 Bush
5 2008/08/06 2000 Adams
6 2008/07/21 100 Carter
        现在,我们希望查找 "OrderPrice" 列的最大值。
SELECT MAX(OrderPrice) AS LargestOrderPrice FROM Orders
        结果集类似这样:
SELECT MIN(column_name) FROM table_name        注释:MIN 和 MAX 也可用于文本列,以获得按字母顺序排列的最高或最低值。
SQL MIN() 实例
        我们拥有下面这个 "Orders" 表:
O_Id OrderDate OrderPrice Customer
1 2008/12/29 1000 Bush
2 2008/11/23 1600 Carter
3 2008/10/05 700 Bush
4 2008/09/28 300 Bush
5 2008/08/06 2000 Adams
6 2008/07/21 100 Carter
        现在,我们希望查找 "OrderPrice" 列的最小值。
SELECT MIN(OrderPrice) AS SmallestOrderPrice FROM Orders
        结果集类似这样:
SELECT SUM(column_name) FROM table_name SQL SUM() 实例
        我们拥有下面这个 "Orders" 表:
O_Id OrderDate OrderPrice Customer
1 2008/12/29 1000 Bush
2 2008/11/23 1600 Carter
3 2008/10/05 700 Bush
4 2008/09/28 300 Bush
5 2008/08/06 2000 Adams
6 2008/07/21 100 Carter
        现在,我们希望查找 "OrderPrice" 字段的总数。
SELECT SUM(OrderPrice) AS OrderTotal FROM Orders
        结果集类似这样:
OrderTotal
5700

热门排行

今日推荐

热门手游