SQL COUNT() 函数

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

-- 查询所有记录的条数

select count(*) from access_log;

-- 查询websites 表中 alexa列中不为空的记录的条数

select count(alexa) from websites;

-- 查询websites表中 country列中不重复的记录条数

select count(distinct country) from websites;

  1. 转身幻影
      转身幻影
     lxi***sheng@163.com
    6年前 (2017-07-17)

  2.   灵车司机
     yan***ng@jykjsys.com
    372

count (表达式)--分组里非空记录数

count (表达式)--分组里非空记录数

count(*)--所有记录

count(1)--所有记录

count(case job = 'CLERK' then 2 end )--CLERK 人数

count(comm)--有奖金的人数

count(distinct job)--distinct(去重),共有多少种工作

  1. 实例:以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,会认为所有数据是一组,返回一个数据

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要实现查询分组count的总和,可以使用SQL语句中的GROUP BY子句和SUM函数。下面是一个示例的300字回答: 在SQL中,我们可以使用GROUP BY子句和SUM函数来实现查询分组count的总和。GROUP BY子句用于根据指定的列对结果进行分组,SUM函数用于计算指定列的总和。 假设我们有一个名为"orders"的订单表,其中包含了订单的ID、日期和顾客ID等列。我们的目标是计算每个顾客的订单数量以及所有顾客的订单总数。 首先,我们需要使用GROUP BY子句按顾客ID进行分组,然后使用COUNT函数来计算每个顾客的订单数量。SQL语句如下: SELECT customer_id, COUNT(order_id) AS order_count FROM orders GROUP BY customer_id; 上述语句将返回一个结果集,其中包含了每个顾客及其对应的订单数量。 接下来,我们需要计算所有顾客的订单总数。为此,我们可以使用嵌套查询。在外部查询中,我们使用SUM函数来计算订单数量的总和,内部查询则与上述查询相同,用于获取每个顾客的订单数量。SQL语句如下: SELECT SUM(order_count) AS total_order_count FROM ( SELECT COUNT(order_id) AS order_count FROM orders GROUP BY customer_id ) AS subquery; 上述语句将返回一个结果,其中包含了所有顾客的订单总数。 总而言之,要实现查询分组count的总和,我们需要使用GROUP BY子句和SUM函数。首先,使用GROUP BY子句按指定列进行分组,并使用COUNT函数计算每个分组的count值。然后,我们可以使用嵌套查询和SUM函数来计算count的总和。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值