原表:
id    fenlei     time
1      分类1      20130316
2      分类2      20130316
3      分类3      20130317
4      分类2      20130317
5      分类3      20130318需要查上表,得到结果插入新表
新表结构:id     fenlei_1   fenlei_2   fenlei_3   date
1      1             1          0         20130316
2      0             1          1         20130317
3      0             0          1         20130317即要得到每个分类在每天各自消息数

解决方案 »

  1.   

    select time,sum(if(fenlei='分类1',1,0 )),
    sum(if(fenlei='分类2',1,0 )),sum(if(fenlei='分类3',1,0 ))
    from tt
    group by time
      

  2.   

    哇,wwwwb都是版主了哇,牛!
      

  3.   

    谢谢版本大人,成功了。
    另外请教一下,
    我这个分类一共有五十多个,预计是每天一统计;
    方案一:
    现在设计的表是以分类为字段,消息数作为值,每天只用插入一条数据,但是sql语句好像有点长;
    方案二:设置字段为分类名,消息数,时间
    这样每天就插入五十多条值,但sql短得多;
    请问哪个方案更好呢?谢谢
      

  4.   

    用 id    fenlei     time这个结构即可
      

  5.   

    嗯,好的,谢谢版主大人,学到了mysql的sum (if()) 用法