mysql group by 涉及到的字段有空数据问题

   统计数据需要按省份分组,这是大家经常遇到的问题。今天遇到一奇葩问题,由于省份(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 的字段一定要用别名(跟数据库原字段名不一致),如果跟数据库字段同名的话会以未赋值时数据库字段的情况分组,虽然已经把空省份赋值为“河北”,但是分组后会出现河北分组重复的情况。(实际空省份还是独立一组)

       

你可能感兴趣的:(mysql)