本帖最后由 phpcainiao 于 2013-09-06 12:03:08 编辑

解决方案 »

  1.   

    csv
      

  2.   

    这些都是最基础的统计
    善用数组的交并差、array_count_values、array_sum、count 组合一下就是了
      

  3.   


    id     fenlei    mc
    1       北京      卫生好
    2       上海      卫生好
    3       上海      服务好
    4       天津      卫生好
    5       天津      服务好
    6       北京      服务好
    7       上海      卫生好
    8       上海      服务好
      

  4.   


    id     fenlei    mc
    1       北京      卫生好
    2       上海      卫生好
    3       上海      服务好
    4       天津      卫生好
    5       天津      服务好
    6       北京      服务好
    7       上海      卫生好
    8       上海      服务好完全新手入门,还请领导多多指教。
      

  5.   

    select a.fenlei, count(*), count(*)/(select count(*) from test)*100 as percentage, constitute
    from test a, (select fenlei, group_concat(mc,',',cnt) as constitute from
    (select fenlei, mc, count(*) as cnt from test group by 1,2) t group by 1) t1
    where a.fenlei=t1.fenlei
     group by 1
    执行该 SQL 指令,可得到这样的数据Array
    (
        [0] => Array
            (
                [fenlei] => 北京
                [count(*)] => 2
                [percentage] => 25.0000
                [constitute] => 服务好,1,卫生好,1
            )    [1] => Array
            (
                [fenlei] => 上海
                [count(*)] => 4
                [percentage] => 50.0000
                [constitute] => 服务好,2,卫生好,2
            )    [2] => Array
            (
                [fenlei] => 天津
                [count(*)] => 2
                [percentage] => 25.0000
                [constitute] => 服务好,1,卫生好,1
            ))
    输出时需对 constitute 列做一下处理