同一列中统计不同的字符出现的个数
我有一个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
------解决方案--------------------顶