zoukankan      html  css  js  c++  java
  • 关于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
  • 相关阅读:
    JZOJ.2117. 【2016-12-30普及组模拟】台风
    团队合作
    长沙游记
    统计
    html....
    OI之路
    三鑫普及组模拟赛
    牛顿迭代法
    台风
    gcd
  • 原文地址:https://www.cnblogs.com/xushy/p/15043148.html
Copyright © 2011-2022 走看看