关于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