数据库中有一张表,ismg_icp_flow
表结构如下
sql>desc ismg_icp_flow
name                     null              Type
ICPNO                    NOT NULL          VARCHER(6)
SERVICE_ID                                 VARCHAR2(10)
STST_MIN                 NOT NULL          DATETIME
MT_RECV_OK               NOT NULL          NUMBER(10)
请写出一条查询语句,同时满足下面3个条件
1 计算MT_RECV_OK 的总和(显示为total),并以此对结果集进行降序排序
2 以ICPNO和SERVICE_ID二个字段进行分组
3 所得到数据的STAT_MIN必须为大于2003年1月1日0时0分并且小于2003年2月1日0时0分期望的输出结果如下
ICPNO  SERVICE_ID  TOTAL
901001 7700        271965
901001 7800        3857795thanks

解决方案 »

  1.   

    select ICPNO,SERVICE_ID,sum(MT_RECV_OK) TOTAL from ismg_icp_flow where STAT_MIN between to_date('2003-1-1','yyyy-mm-dd') 
    and to_date('2003-2-1','yyyy-mm-dd')
      

  2.   


    SELECT ICPNO,SERVICE_ID,SUM(MT_RECV_OK) AS TOTAL
    FROM ISMG_ICP_FLOW
    WHERE STST_MIN > TO_DATE('20130101','YYYYMMDD')
     AND STST_MIN < TO_DATE('20130201','YYYYMMDD')
    GROUP BY ICPNO,SERVICE_ID;
      

  3.   

    后面加上group by ICPNO,SERVICE_ID order by TOTAL select ICPNO,SERVICE_ID,sum(MT_RECV_OK) TOTAL from ismg_icp_flow where STAT_MIN between to_date('2003-1-1','yyyy-mm-dd') and to_date('2003-2-1','yyyy-mm-dd') group by ICPNO,SERVICE_ID order by TOTAL desc