解决方案 »

  1.   

    select  callingnumber,count(*),sum(lastime)
    from tb
    group by callingnumberselect  callednumber,count(*),sum(lastime)
    from tb
    group by callednumber
      

  2.   

    楼主是要的这种结果吗?
    mysql> SELECT number 
         , SUM(IF(number = callingnumber , lastime , 0) ) AS '主叫'
         , SUM(IF(number = callednumber  , lastime , 0) ) AS '被叫'
         , SUM(IF(number = callingnumber , 1 , 0) ) AS '主叫次数'
         , SUM(IF(number = callednumber  , 1 , 0) ) AS '被叫次数'
    FROM (
    SELECT number,callingnumber,callednumber,lastime,IF(number = callingnumber , '1' , '2' ) AS flag FROM `test2` 
    ) tbl
    GROUP BY number ;
    +-------------+------+------+----------+----------+
    | number      | 主叫 | 被叫 | 主叫次数 | 被叫次数 |
    +-------------+------+------+----------+----------+
    | 15625613212 |   10 |   89 | 1        | 1        |
    | 15635645354 |    0 |   56 | 0        | 1        |
    | 18325452455 |   45 |    0 | 1        | 0        |
    +-------------+------+------+----------+----------+
      

  3.   

    上一个发错了
    mysql> SELECT number 
         , SUM(IF(number = callingnumber , lastime , 0) ) AS '主叫'
         , SUM(IF(number = callednumber  , lastime , 0) ) AS '被叫'
         , SUM(IF(number = callingnumber , 1 , 0) ) AS '主叫次数'
         , SUM(IF(number = callednumber  , 1 , 0) ) AS '被叫次数'
    FROM `test2` 
    GROUP BY number ;
    +-------------+------+------+----------+----------+
    | number      | 主叫 | 被叫 | 主叫次数 | 被叫次数 |
    +-------------+------+------+----------+----------+
    | 15625613212 |   10 |   89 | 1        | 1        |
    | 15635645354 |    0 |   56 | 0        | 1        |
    | 18325452455 |   45 |    0 | 1        | 0        |
    +-------------+------+------+----------+----------+
      

  4.   

    是这样的吗? 你最好吧你要的结果展示出来。
    mysql>  SELECT number 
         , SUM(lastime) AS '通话时间'
         , SUM(IF(number = callingnumber , 1 , 0) ) + SUM(IF(number = callednumber  , 1 , 0) )  AS '通话次数'
    FROM `test2` 
    GROUP BY number ;
    +-------------+----------+----------+
    | number      | 通话时间 | 通话次数 |
    +-------------+----------+----------+
    | 15625613212 |       99 | 2        |
    | 15635645354 |       56 | 1        |
    | 18325452455 |       45 | 1        |
    +-------------+----------+----------+
      

  5.   


    select number,relateNumber,sum(times),sum(minutes) from
     (select number as number ,callingnumber as relateNumber' ,count(*) as times,sum(lastime) as minutes
    from tb group by callingnumber,number
    union 
    select number as number ,callednumber as relateNumber ,count(*) as times,sum(lastime) as minutes
    from tb group by callingnumber,number)  a
    group by number,relateNumber没测试。。提供个思路,看看是不是你要的那种效果?
      

  6.   

    select number,if(number=callingnumber,callednumber,callingnumber),count(*), sum(lastime)
    from  比如这么一个表
    group by number,if(number=callingnumber,callednumber,callingnumber)
      

  7.   

    select number '目标号码',(CASE number WHEN callingnumber THEN callednumber WHEN callednumber THEN callingnumber END) '通话对象',count(*) '次数', sum(lasttime) '通话时长'
    from  calltab
    group by number,(CASE number WHEN callingnumber THEN callednumber WHEN callednumber THEN callingnumber END)