zoukankan      html  css  js  c++  java
  • MySQL:count()用法

    语法

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

    COUNT(column_name) 语法

    COUNT(column_name) 函数返回指定列的值的数目(NULL 不计入):

    SELECT COUNT(column_name) FROM table_name
    

    COUNT(*) 语法

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

    SELECT COUNT(*) FROM table_name
    

    COUNT(DISTINCT column_name) 语法

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

    SELECT COUNT(DISTINCT column_name) FROM table_name
    

    实例

    "Orders" 表:

    O_Id OrderDate OrderPrice Customer
    1 2008/12/29 1000 Bush
    2 2008/11/23 1600 Carter
    3 2008/10/13 1234 Bush
    4 2008/12/14 300 Bush
    5 2008/09/06 678 Adams
    6 2008/10/26 963 Carter
    SELECT COUNT(Customer) AS CustomerNilsen FROM Orders
    WHERE Customer='Carter'
    

    返回2


    SELECT COUNT(*) AS NumberOfOrders FROM Orders
    

    返回6


    SELECT COUNT(DISTINCT Customer) AS NumberOfCustomers FROM Orders
    

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

    总结

    1.count()函数是用来统计表中记录的一个函数,返回匹配条件的行数。

    2.count()语法:

    (1)count(*)---包括所有列,返回表中的记录数,相当于统计表的行数,在统计结果的时候,不会忽略列值为NULL的记录。

    (2)count(1)---忽略所有列,1表示一个固定值,也可以用count(2)、count(3)代替,在统计结果的时候,不会忽略列值为NULL的记录。

    (3)count(列名)---只包括列名指定列,返回指定列的记录数,在统计结果的时候,会忽略列值为NULL的记录(不包括空字符串和0),即列值为NULL的记录不统计在内。

    (4)count(distinct 列名)---只包括列名指定列,返回指定列的不同值的记录数,在统计结果的时候,在统计结果的时候,会忽略列值为NULL的记录(不包括空字符串和0),即列值为NULL的记录不统计在内。

    3.count(*)&count(1)&count(列名)执行效率比较:

    (1)如果列为主键,count(列名)效率优于count(1)

    (2)如果列不为主键,count(1)效率优于count(列名)

    (3)如果表中存在主键,count(主键列名)效率最优

    (4)如果表中只有一列,则count(*)效率最优

    (5)如果表有多列,且不存在主键,则count(1)效率优于count(*)

    4.因为count(*)和count(1)统计过程中不会忽略列值为NULL的记录,所以可以通过以下两种方式来统计列值为NULL的记录数:

    (1)select count(*) from table where is_active is null;
    (2)select count(1) from table where is_active is null;

    5.特例:

    (1)select count('') from table;-返回表的记录数
    (2)select count(0) from table;-返回表的记录数
    (3)select count(null) from table;-返回0

  • 相关阅读:
    istio 配置解读
    docker 不同版本 添加--insecure-registry
    Ingress 暴露tcp端口
    jenkins 调用 k8s api
    十五项指标衡量DevOps是否成功
    关于使用镜像仓库的思考
    Jenkins pipeline:pipeline 语法详解
    lvm xfs 扩容
    看到了一个pipeline例子,
    私有仓库harbor安装包括https
  • 原文地址:https://www.cnblogs.com/kylinxxx/p/14008826.html
Copyright © 2011-2022 走看看