菜鸟教程 -- 学的不仅是技术,更是梦想!

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 输出结果如下:



AI 思考中...

2 篇笔记 写笔记

  1. #0

    转身幻影

    lxi***[email protected]

    347
    -- 查询所有记录的条数
    select count(*) from access_log;
    -- 查询websites 表中 alexa列中不为空的记录的条数
    select count(alexa) from websites;
    -- 查询websites表中 country列中不重复的记录条数
    select count(distinct country) from websites;
    

    转身幻影

    lxi***[email protected]

    9年前 (2017年07月17日)
  2. #0

    灵车司机

    yan***[email protected]

    453
    count (表达式)--分组里非空记录数
    count (表达式)--分组里非空记录数
    count(*)--所有记录
    count(1)--所有记录
    count(case job = 'CLERK' then 2 end )--CLERK 人数
    count(comm)--有奖金的人数
    count(distinct job)--distinct(去重),共有多少种工作

    实例:以EMP表为例

    select deptno,
    count(1) 总人数,
    count(case when job ='SALESMAN' then '1' end) 销售人数,
    count(case when job ='MANAGER' then '1' end) 主管人数
    from emp
    group by deptno;--如果不group,会认为所有数据是一组,返回一个数据

    灵车司机

    yan***[email protected]

    7年前 (2019年03月18日)

点我分享笔记

  • 昵称 (必填)
  • 邮箱 (必填)
  • 引用地址

AltStyle によって変換されたページ (->オリジナル) /