同一列中统计不同的字符出现的个数解决办法

同一列中统计不同的字符出现的个数

我有一个MySQL表,将要用于统计,现在碰到难题,求教于各位大虾:

表格式如下:

|—-|——–|

|NAME| FIELD_1|

|—-|——–|

|Tom | A |

|—-|——–|

|John| B |

|—-|——–|

|Sun | C |

|—-|——–|

|Dany| E |

|—-|——–|

|Tom | D |

|—-|——–|

|John| C |

|—-|——–|

|… | … |

|—-|——–|

|… | … |

|—-|——–|

现在的问题是,我要根据人名来统计Field_1这一栏中A,B,C,D,E分别出现的次数,其统计的最终结果结构如下:

|—-|——–|——–|——–|——–|——–|

|NAME| NumOfA | NumOfB | NumOfC | NumOfD | NumOfE |

|—-|——–|——–|——–|——–|——–|

|—-|——–|——–|——–|——–|——–|

|Tom | 20 | 18 | 34 | 69 | 9 |

|—-|——–|——–|——–|——–|——–|

|John| 12 | 23 | 78 | 99 | 11 |

|—-|——–|——–|——–|——–|——–|

|… | … | … | … | … | … |

|—-|——–|——–|——–|——–|——–|

|… | … | … | … | … | … |

|—-|——–|——–|——–|——–|——–|

请教各位,用SQL怎么实现?要求:最好不要额外创建的表或视图!!



select name,sum(if(FIELD_1=’A’,1,0)) AS NumOfA,

sum(if(FIELD_1=’B’,1,0)) AS NumOfB,

sum(if(FIELD_1=’C’,1,0)) AS NumOfC

FROM TT GROUP BY NAME




同一列中统计不同的字符出现的个数解决办法

相关文章:

你感兴趣的文章:

标签云: