【SQL】【关于COUNT的用法和细节】 您所在的位置:网站首页 sql语言的使用方法有哪几种 【SQL】【关于COUNT的用法和细节】

【SQL】【关于COUNT的用法和细节】

2024-07-12 10:15| 来源: 网络整理| 查看: 265

COUNT的定义

官方定义:COUNT() 函数返回匹配指定条件的行数。

count的三种用法 count(列名) 函数返回指定列的值的数目【不计入NULL值】 SELECT COUNT(id) FROM tableX; count(*) 函数返回表中的记录数。【可以理解为表格的行数】 【计入NULL值】 SELECT COUNT(*) FROM tableX; count(DISTINCT 列名) 返回指定列的不同值的数目【即不计入重复项】 SELECT COUNT(DISTINCT id) FROM tableX; COUNT(*)、COUNT(1)和COUNT(列名)

CONUT(*)与CONUT(1) 它们之间是没有区别,不存在单列还是多列的扫描问题,如果count(1)是聚集索引,那么会稍微快一点点,但是count(*)也会自动优化到指定字段,所以没必要纠结这个

CONUT(*)和COUNT(列名) CONUT(*)返回的是指定表的行数,只需找到表头,计算行数即可,不需要读取数据列的数据内容。 COUNT(列名),为了去除是NULL值的行,需要读取每一行的值。 因此CONUT(*)比COUNT(列名)快

COUNT(列名)和COUNT(DISTINCT 列名) 明显会是COUNT(列名)更快,因为DISTINCT需要查重,耗费更多时间

规律总结 如果对特定列做count的话,建立对应列的非聚集索引会有帮助COUNT(*)可以找最小的列建立非聚集索引来避免全表扫描不加where条件下,*和列名基本等价,有where下,*会快很多

执行效率上: 列名为主键,count(列名)会比count(1)快 列名不为主键,count(1)会比count(列名)快 如果表多个列并且没有主键,则 count(1) 的执行效率优于 count(*) 如果有主键,则 select count(主键)的执行效率是最优的 如果表只有一个字段,则 select count(*)最优。

用法注意 如果需要显示指定列,需要group by分组对应列,才能显示 SELECT id,name,COUNT(*) FROM tableX Group BY id,name 下面这个复杂语句很灵活,使用了子查询再嵌套查询的两张表关联查询。解释:子查询是查到course表中cid出现次数小于5的那个cid具体的值,得到的结果必须只有一条,这样才满足使用">


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有