目录

SQL AVG() 函数

AVG() 函数

SQL AVG() 语法

SQL COUNT() 函数

SQL COUNT(column_name) 语法

SQL COUNT(*) 语法

SQL COUNT(DISTINCT column_name) 语法

SQL FIRST() 函数

FIRST() 函数

SQL FIRST() 语法

LAST() 函数

SQL LAST() 语法

MAX() 函数

SQL MAX() 语法

MIN() 函数

SQL MIN() 语法

SUM() 函数

SQL SUM() 语法


SQL AVG() 函数


AVG() 函数

AVG() 函数返回数值列的平均值。

SQL AVG() 语法

SELECT AVG(column_name) FROM table_name


演示数据库

在本教程中,我们将使用 RUNOOB 样本数据库。

下面是选自 "access_log" 表的数据:

+-----+---------+-------+------------+
| aid | site_id | count | date       |
+-----+---------+-------+------------+
|   1 |       1 |    45 | 2016-05-10 |
|   2 |       3 |   100 | 2016-05-13 |
|   3 |       1 |   230 | 2016-05-14 |
|   4 |       2 |    10 | 2016-05-14 |
|   5 |       5 |   205 | 2016-05-14 |
|   6 |       4 |    13 | 2016-05-15 |
|   7 |       3 |   220 | 2016-05-15 |
|   8 |       5 |   545 | 2016-05-16 |
|   9 |       3 |   201 | 2016-05-17 |
+-----+---------+-------+------------+


SQL AVG() 实例

下面的 SQL 语句从 "access_log" 表的 "count" 列获取平均值:

实例

SELECT AVG(count) AS CountAverage FROM access_log;

执行以上 SQL 输出结果如下:

下面的 SQL 语句选择访问量高于平均访问量的 "site_id" 和 "count":

实例

SELECT site_id, count FROM access_log
WHERE count > (SELECT AVG(count) FROM access_log);

执行以上 SQL 输出结果如下:


SQL COUNT() 函数


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。


演示数据库

在本教程中,我们将使用 RUNOOB 样本数据库。

下面是选自 "access_log" 表的数据:

+-----+---------+-------+------------+
| aid | site_id | count | date       |
+-----+---------+-------+------------+
|   1 |       1 |    45 | 2016-05-10 |
|   2 |       3 |   100 | 2016-05-13 |
|   3 |       1 |   230 | 2016-05-14 |
|   4 |       2 |    10 | 2016-05-14 |
|   5 |       5 |   205 | 2016-05-14 |
|   6 |       4 |    13 | 2016-05-15 |
|   7 |       3 |   220 | 2016-05-15 |
|   8 |       5 |   545 | 2016-05-16 |
|   9 |       3 |   201 | 2016-05-17 |
+-----+---------+-------+------------+


SQL COUNT(column_name) 实例

下面的 SQL 语句计算 "access_log" 表中 "site_id"=3 的总访问量:

实例

SELECT COUNT(count) AS nums FROM access_log
WHERE site_id=3;


SQL COUNT(*) 实例

下面的 SQL 语句计算 "access_log" 表中总记录数:

实例

SELECT COUNT(*) AS nums FROM access_log;

执行以上 SQL 输出结果如下:


SQL COUNT(DISTINCT column_name) 实例

下面的 SQL 语句计算 "access_log" 表中不同 site_id 的记录数:

实例

SELECT COUNT(DISTINCT site_id) AS nums FROM access_log;

执行以上 SQL 输出结果如下:


SQL FIRST() 函数


FIRST() 函数

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

SQL FIRST() 语法

SELECT FIRST(column_name) FROM table_name;

注释:只有 MS Access 支持 FIRST() 函数。


SQL Server、MySQL 和 Oracle 中的 SQL FIRST() 工作区

SQL Server 语法

SELECT TOP 1 column_name FROM table_name
ORDER BY column_name ASC;

实例

SELECT TOP 1 name FROM Websites
ORDER BY id ASC;

MySQL 语法

SELECT column_name FROM table_name
ORDER BY column_name ASC
LIMIT 1;

实例

SELECT name FROM Websites
ORDER BY id ASC
LIMIT 1;

Oracle 语法

SELECT column_name FROM table_name
ORDER BY column_name ASC
WHERE ROWNUM <=1;

实例

SELECT name FROM Websites
ORDER BY id ASC
WHERE ROWNUM <=1;


演示数据库

在本教程中,我们将使用 RUNOOB 样本数据库。

下面是选自 "Websites" 表的数据:

+----+--------------+---------------------------+-------+---------+
| id | name         | url                       | alexa | country |
+----+--------------+---------------------------+-------+---------+
| 1  | Google       | https://www.google.cm/    | 1     | USA     |
| 2  | 淘宝          | https://www.taobao/   | 13    | CN      |
| 3  | 菜鸟教程      | http://www.runoob/    | 4689  | CN      |
| 4  | 微博          | http://weibo/         | 20    | CN      |
| 5  | Facebook     | https://www.facebook/ | 3     | USA     |
|  6 | 百度         | https://www.baidu/    |     4 | CN      |
|  7 | stackoverflow | http://stackoverflow/ |     0 | IND     |
+----+---------------+---------------------------+-------+---------+


SQL FIRST() 实例

下面的 SQL 语句选取 "Websites" 表的 "name" 列中第一个记录的值:

实例

SELECT name AS FirstSite FROM Websites LIMIT 1;

执行以上 SQL 结果如下所示:


LAST() 函数

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

SQL LAST() 语法

SELECT LAST(column_name) FROM table_name;

注释:只有 MS Access 支持 LAST() 函数。


SQL Server、MySQL 和 Oracle 中的 SQL LAST() 工作区

SQL Server 语法

SELECT TOP 1 column_name FROM table_name
ORDER BY column_name DESC;

实例

SELECT TOP 1 name FROM Websites 
ORDER BY id DESC;

MySQL 语法

SELECT column_name FROM table_name
ORDER BY column_name DESC
LIMIT 1;

实例

SELECT name FROM Websites
ORDER BY id DESC
LIMIT 1;

Oracle 语法

SELECT column_name FROM table_name
ORDER BY column_name DESC
WHERE ROWNUM <=1;

实例

SELECT name FROM Websites
ORDER BY id DESC
WHERE ROWNUM <=1;


演示数据库

在本教程中,我们将使用 RUNOOB 样本数据库。

下面是选自 "Websites" 表的数据:

+----+--------------+---------------------------+-------+---------+
| id | name         | url                       | alexa | country |
+----+--------------+---------------------------+-------+---------+
| 1  | Google       | https://www.google.cm/    | 1     | USA     |
| 2  | 淘宝          | https://www.taobao/   | 13    | CN      |
| 3  | 菜鸟教程      | http://www.runoob/    | 4689  | CN      |
| 4  | 微博          | http://weibo/         | 20    | CN      |
| 5  | Facebook     | https://www.facebook/ | 3     | USA     |
|  6 | 百度         | https://www.baidu/    |     4 | CN      |
|  7 | stackoverflow | http://stackoverflow/ |     0 | IND     |
+----+---------------+---------------------------+-------+---------+

SQL LAST() 实例

下面的 SQL 语句选取 "Websites" 表的 "name" 列中最后一个记录的值:

实例

SELECT name FROM Websites
ORDER BY id DESC
LIMIT 1;

执行以上 SQL 结果如下所示:


MAX() 函数

MAX() 函数返回指定列的最大值。

SQL MAX() 语法

SELECT MAX(column_name) FROM table_name;


演示数据库

在本教程中,我们将使用 RUNOOB 样本数据库。

下面是选自 "Websites" 表的数据:

+----+--------------+---------------------------+-------+---------+
| id | name         | url                       | alexa | country |
+----+--------------+---------------------------+-------+---------+
| 1  | Google       | https://www.google.cm/    | 1     | USA     |
| 2  | 淘宝          | https://www.taobao/   | 13    | CN      |
| 3  | 菜鸟教程      | http://www.runoob/    | 5000  | CN      |
| 4  | 微博          | http://weibo/         | 20    | CN      |
| 5  | Facebook     | https://www.facebook/ | 3     | USA     |
|  6 | 百度         | https://www.baidu/    |     4 | CN      |
|  7 | stackoverflow | http://stackoverflow/ |     0 | IND     |
+----+---------------+---------------------------+-------+---------+


SQL MAX() 实例

下面的 SQL 语句从 "Websites" 表的 "alexa" 列获取最大值:

实例

SELECT MAX(alexa) AS max_alexa FROM Websites;

执行以上 SQL 结果如下所示:


MIN() 函数

MIN() 函数返回指定列的最小值。

SQL MIN() 语法

SELECT MIN(column_name) FROM table_name;


演示数据库

在本教程中,我们将使用 RUNOOB 样本数据库。

下面是选自 "Websites" 表的数据:

+----+--------------+---------------------------+-------+---------+
| id | name         | url                       | alexa | country |
+----+--------------+---------------------------+-------+---------+
| 1  | Google       | https://www.google.cm/    | 1     | USA     |
| 2  | 淘宝          | https://www.taobao/   | 13    | CN      |
| 3  | 菜鸟教程      | http://www.runoob/    | 4689  | CN      |
| 4  | 微博          | http://weibo/         | 20    | CN      |
| 5  | Facebook     | https://www.facebook/ | 3     | USA     |
|  6 | 百度         | https://www.baidu/    |     4 | CN      |
|  7 | stackoverflow | http://stackoverflow/ |     0 | IND     |
+----+---------------+---------------------------+-------+---------+


SQL MIN() 实例

下面的 SQL 语句从 "Websites" 表的 "alexa" 列获取最小值:

实例

SELECT MIN(alexa) AS min_alexa FROM Websites;

执行以上 SQL 结果如下所示:


SUM() 函数

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

SQL SUM() 语法

SELECT SUM(column_name) FROM table_name;


演示数据库

在本教程中,我们将使用 RUNOOB 样本数据库。

下面是选自 "access_log" 表的数据:

mysql> SELECT * FROM access_log;
+-----+---------+-------+------------+
| aid | site_id | count | date       |
+-----+---------+-------+------------+
|   1 |       1 |    45 | 2016-05-10 |
|   2 |       3 |   100 | 2016-05-13 |
|   3 |       1 |   230 | 2016-05-14 |
|   4 |       2 |    10 | 2016-05-14 |
|   5 |       5 |   205 | 2016-05-14 |
|   6 |       4 |    13 | 2016-05-15 |
|   7 |       3 |   220 | 2016-05-15 |
|   8 |       5 |   545 | 2016-05-16 |
|   9 |       3 |   201 | 2016-05-17 |
+-----+---------+-------+------------+
9 rows in set (0.00 sec)


SQL SUM() 实例

下面的 SQL 语句查找 "access_log" 表的 "count" 字段的总数:

实例

SELECT SUM(count) AS nums FROM access_log;

执行以上 SQL 输出结果如下:


更多推荐

SQL函数:AVG()、COUNT()、FIRST() 、LAST()、MAX()、MIN()、SUM()