我用的是MYSQL,现在有张表,里面有 calldate(日期), clid(呼叫号码 (使用者姓名)如:55785008 <Eva>),src(主叫方号码 如:55785008),dst(被叫方号码 如:55785002) 
我现在要查的是,在某段时间内主叫方号码,让他按照出现次数的多少,降序排列,或者升序排列。希望各位给我指导一下,小弟不胜感激!

解决方案 »

  1.   

    试试这句,看行不行SELECT cout(`src`) AS `src_count` as from table WHERE calldate <= XXXX AND calldate >= XXXX GROUP BY src ORDER BY `src_count` desc;
      

  2.   

    你看看这样写对吗 select src,count(src) from (select * from table where calldate between a and b)
    group by src
      

  3.   


    3 楼的不行么?calldate(日期), clid(呼叫号码 (使用者姓名)如:55785008 <Eva>),src(主叫方号码 如:55785008)
    在某段时间内主叫方号码,让他按照出现次数的多少,降序排列,或者升序排列SELECT COUNT(src) AS CC FROM TN WHERE calldate>'2008-08-01' AND calldate<'2008-08-30' GROUP BY src ORDER BY CC;-------------------------------------------------------
    回帖是一种美德!传说每天回帖即可获得 10 分可用分!
      

  4.   

    CC指的什么?
    比如说 现在有这样的数据
      calldate    src(主叫号码)      dst
    2007-12-04    5001                  5002
    2007-12-05    5001                  5004
    2007-12-06    5002                  5008
    2007-12-06    5001                  5004
    2007-12-06    5002                  5007
    2007-12-06    5009                  5007
    我现在要求查询出来的数据是  在 2007-12-04 到 2007-12-06  这个期间 按照src出现次数最多的排在最前面
    例如这样:2007-12-04    5001                  5002
    2007-12-05    5001                  5004
    2007-12-06    5001                  5004
    2007-12-06    5002                  5008
    2007-12-06    5002                  5007
    2007-12-06    5009                  5007
      

  5.   

    select * from cdr a,(select src sr,count(*) cn from cdr group by src) b where a.src=b.sr and CALLDATE>timestamp('2007-12-04') and CALLDATE<timestamp('2007-12-09')order by cn desc,src,calldate