select up.university,format(count(qpd.question_id)/count(distinct qpd.device_id),4) as avg_answer_cnt from `user_profile` up inner join `question_practice_detail` qpd on up.device_id = qpd.device_id group by up.university order by up.university asc
count()是SQL中用来统计表中记录的一个函数,返回条件的行数
用法:
count(*)
返回表中的记录数(包括所有列),相当于统计表的行数(不会忽略列值为NULL的记录)
count(1)
忽略所有列,1表示一个固定值,也可以用count(2)、count(3)代替(不会忽略列值为NULL的记录)
count(列名)
返回列名指定列的记录数,在统计结果的时候,会忽略列值为NULL的记录(不包括空字符串和0),即列值为NULL的记录不统计在内
count(distinct 列名)
只包括列名指定列,返回指定列的不同值的记录数,在统计结果的时候,在统计结果的时候,会忽略列值为NULL的记录(不包括空字符串和0),即列值为NULL的记录不统计在内。