码迷,mamicode.com
首页 > 数据库 > 详细

SQL合计函数(avg、count、first、last、max、min、sum)

时间:2015-05-07 10:03:20      阅读:754      评论:0      收藏:0      [点我收藏+]

标签:

   Aggregate 函数的操作面向一系列的值,并返回一个单一的值。

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

 

首先所有的SQL实例使用到下面的一张表

O_IdOrderDateOrderPriceCustomer
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

SQL AVG

  AVG 函数返回数值列的平均值。NULL 值不包括在计算中。

  语法

SELECT AVG(column_name) FROM table_name

  例子1,计算“OrderPrice”字段的平均值

SELECT AVG(OrderPrice) AS OrderAverage FROM Orders

  结果如下

OrderAverage
950

  例子2,找出OrderPrice 值高于 OrderPrice平均值的客户

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

  结果如下

Customer
Bush
Carter
Adams

 

SQL COUNT

  COUNT()函数返回匹配指定条件的行数(NULL不计入)

SELECT COUNT(column_name) FROM table_name

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

SELECT COUNT(*) FROM table_name

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

SELECT COUNT(DISTINCT column_name) FROM table_name

  注意:COUNT(DISTINCT)适用于ORACLE和SQL SERVER, 但是无法用于ACCESS

  实例1,计算客户“Carter”的订单数

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

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

CustomerNilsen
2

  实例2,使用COUNT(*)获取表中的总行数

SELECT COUNT(*) AS NumberOfOrders
FROM Orders

  结果集类似这样:

NumberOfOrders
6

  实例3,使用COUNT(DISTINCT column_name)计算“Orders”表中不同客户的数目

SELECT COUNT(DISTINCT Customer) AS NumberOfCustomers
FROM Orders

  结果集类似这样:

NumberOfCustomers
3

  这是 "Orders" 表中不同客户(Bush, Carter 和 Adams)的数目。

 

SQL FIRST

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

  可以使用 ORDER BY 语句对记录进行排序

  语法

SELECT FIRST(column_name) FROM table_name

  实例,找出“OrderPrice”列的第一个值

SELECT FIRST(OrderPrice) AS FirstOrderPrice FROM Orders

  结果集类似这样:

FirstOrderPrice
1000

 

SQL LAST

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

  可使用 ORDER BY 语句对记录进行排序

  语法

SELECT LAST(column_name) FROM table_name

  实例,查找出 “OrderPrice”列中的最后一个值

SELECT LAST(OrderPrice) AS LastOrderPrice FROM Orders

  结果集类似这样:

LastOrderPrice
100

 

SQL MAX

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

  语法

SELECT MAX(column_name) FROM table_name

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

  实例,查找出“OrderPrice”列的最大值

SELECT MAX(OrderPrice) AS LargestOrderPrice FROM Orders

  结果集类似这样:

LargestOrderPrice
2000

 

SQL MIN

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

  语法

SELECT MIN(column_name) FROM table_name

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

  实例,找出“OrderPrice”列中的最小值

SELECT MIN(OrderPrice) AS SmallestOrderPrice FROM Orders

  结果集类似这样:

SmallestOrderPrice
100

 

SQL SUM

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

  语法

SELECT SUM(column_name) FROM table_name

  实例,查找出“OrderPrice”字段的总数

SELECT SUM(OrderPrice) AS OrderTotal FROM Orders

  结果集类似这样:

OrderTotal
5700

  5700= 1000+1600+700+300+2000+100

SQL合计函数(avg、count、first、last、max、min、sum)

标签:

原文地址:http://www.cnblogs.com/xumenger/p/4483807.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!