zoukankan      html  css  js  c++  java
  • mysql分组统计后将结果顺序排列(union实现)

      工作中用到统计12月份通话记录,统计号码拨打次数,但是问题出在一个号码可以拨打多次,每次可能接通也可能不接通,如果用主叫号码caller字段group by分组后count(*)统计数目,这样会导致不能看到统计数目中几条是接通,几条是未接通的,于是想到用union分是否接通各自统计,然后将统计结果按照号码排序放到一起,具体实现如下

         billid(通话记录id),caller(主叫号码),callerstarttime(拨打时间),callerResult(拨打结果0未接通 1接通)

      sql实现语句如下:

      

    SELECT bill_id,Caller,from_unixtime(CallerStartTime,'%Y-%c-%d %h:%i:%s') as date,CallResult,count(*) as num FROM `sup_tel_record` where CallerStartTime > 1417363200 and CallerStartTime < 1420041600 and CallResult = 0 group by Caller 
    union
    SELECT bill_id,Caller,from_unixtime(CallerStartTime,'%Y-%c-%d %h:%i:%s') as date,CallResult,count(*) as num FROM `sup_tel_record` where CallerStartTime > 1417363200 and CallerStartTime < 1420041600 and CallResult = 1 group by Caller order by date asc

    输出结果如下:

    注意使用union进行sql语句连接时,第一条sql语句不能使用order by排序,否则会出现

    mysql错误 1221 Incorrect usage of union and order by

  • 相关阅读:
    Mybatis 延迟加载策略
    Mybatis中的多表查询 多对多
    Mybatis中的多表查询 多对一,一对多
    Mybatis 的动态 SQL 语句
    Mybatis中的连接池
    判断一个对象是否为数组
    包装对象概念 (做好事不留名的雷锋)
    javascript 继承之拷贝,原型,类式
    ajax参数
    面向对象小实例之 选项卡
  • 原文地址:https://www.cnblogs.com/dest/p/4205438.html
Copyright © 2011-2022 走看看