添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

在sql中,做count()统计时,如果结果为null,这条数据是不显示的,但是经常会有类似的需求,比如:统计江西省下的某11个市的企业数量,如果有些城市企业数量为0,会发现最后返回的结果不到11条。怎么办?

有如下的数据:

现在需要统计:江西商务厅下的所有的公司数量,按照city排序,sql很简单,如下:

SELECT
	city,
	COUNT(*) AS count
	entInfo
WHERE
	department = '江西商务厅'
AND city IN (
	'南昌市',
	'景德镇市',
	'萍乡市',
	'九江市',
	'新余市',
	'鹰潭市',
	'赣州市',
	'吉安市',
	'宜春市',
	'抚州市',
	'上饶市'
GROUP BY
此时会得到如下结果,会发现,本来有11个市,但查询结果里面仅有8条数据,因为有三个市是没有数据的,查询结果为null,所有没有显示。 

这个sql可以这么写:

SELECT t.city,count(h.id) as count from 
 SELECT '南昌市' city UNION
 SELECT '景德镇市' city UNION
 SELECT '萍乡市' city UNION
 SELECT '九江市' city UNION
 SELECT '新余市' city UNION
 SELECT '鹰潭市' city UNION
 SELECT '赣州市' city UNION
 SELECT '吉安市' city UNION
 SELECT '宜春市' city UNION
 SELECT '抚州市' city UNION
 SELECT '上饶市' city
LEFT JOIN intInfo 
on t.city=h.city 
and h.department='江西商务厅'
GROUP BY t.city
ORDER BY count desc
查询结果如下: 在sql中,做count()统计时,如果结果为null,这条数据是不显示的,但是经常会有类似的需求,比如:统计江西省下的某11个市的企业数量,如果有些城市企业数量为null,会发现最后返回的结果不到11条。怎么办?
sqlcount 计算null值的个数 今天上班遇到一个求没有下发过任务的号码个数,因为没有标记字段,需要left join 查null的个数, 之前一直count(1) / count(*) 遇到这种情况还是想了一会儿,所以记录一下 countnullcount(if(字段 is null ,1,0)) 当单列中含有NULL值的候,SUM()会忽略该NULL值进行求和。如果涉及多列的求和运算,某一列的值为NULL,会忽略该组合列(多个参与求和的列),也即忽略该行,该行返回的求和数将为null。 AVG() AVG()和SUM()相同,也会忽略NULL值进行运算 COUNT() 这个聚集函数处理NULL值的候就比较特殊了,有以下两种情况
SQL查询中的COUNT函数结果为NULL的部分替换成。可以使用IFNULL函数,将COUNT函数的结果与进行比较,如果结果为NULL,则返回,否则返回COUNT函数的结果。示例代码如下: SELECT IFNULL(COUNT(column_name), ) FROM table_name; 其中,column_name为需要统计的列名,table_name为需要查询的表名。