• 关于mysql count的理解


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

    由于对count理解不到位导致写出了下面错误的sql,这个是要统计fund_investor这个表所有记录数和commitment大于0的记录数

    SELECT
        count(fund_investor.id),
        count(fund_investor.commitment > 0)
    FROM
        fund_investor
    WHERE
        fund_investor.delete_flag = 0

    上面的第二列数据是错误的,原因在于commitment 和 0 比较是一个布尔值,而不是null,导致被统计到了数据中

    sql : select 1>0
    结果: 1

    改写成下面的sql即正确

    SELECT
        count(fund_investor.id) 
        count(if(fund_investor.commitment > 0,1,null)) 
    FROM
        fund_investor
    WHERE
        fund_investor.delete_flag = 0
  • 相关阅读:
    异常流
    动手动脑7
    《大道至简七八章》
    接口与继承-动手动脑
    《大道至简第六章》读后感
    随机数存放到数组并求和
    《大道至简第五章》

    echo
    mount命令
  • 原文地址:https://www.cnblogs.com/xushy/p/15043148.html
Copyright © 2020-2023  润新知