mysql group by 涉及到的字段有空数据问题
统计数据需要按省份分组,这是大家经常遇到的问题。今天遇到一奇葩问题,由于省份(province)字段数据不规范,有的是省份名称,有的是 "" (空) 有的是 "未知"。这时 group by province 时就会出现未知的一组 空数据的一组 当然前台是不能显示空省份的 如果把空省份都循环赋值为未知的话 前台显示未知省份 显得也不是那么和谐。 解决办法:
统计数据需要按省份分组,这是大家经常遇到的问题。今天遇到一奇葩问题,由于省份(province)字段数据不规范,
有的是省份名称,有的是 "" (空) 有的是 "未知"。这时 group by province 时就会出现未知的一组 空数据的一组 当然
前台是不能显示空省份的 如果把空省份都循环赋值为未知的话 前台显示未知省份 显得也不是那么和谐。
解决办法:
以下如果没有特殊说明则
定义 : 表名 为 table_name
字段名 为 field_name1 field_name2
表别名 为 table_alias
字段别名 为 field_alias
select field_name1 ,field_name2 ,count( field_name3 ) as field_alias ,
case province when '' then '河北' when '未知' then '河北' else province end as pro from table_name where ....... group by pro
注意:如果在sql语句中给字段赋值,此时group by 的字段一定要用别名(跟数据库原字段名不一致),如果跟数据库字段同名的话会以未赋值时数据库字段的情况分组,虽然已经把空省份赋值为“河北”,但是分组后会出现河北分组重复的情况。(实际空省份还是独立一组)
更多推荐
所有评论(0)