zoukankan      html  css  js  c++  java
  • 统计报表

             眼下这家公司的工作在做一个客户系统,有接触统计通话记录.需求是这种,要统计出每一个客服一天,甚至是管理员选什么时候到什么时候如:10天  15 天   20 天 的通话量,通话时长,通话的惬意评价数量,以及不惬意的评价数量.以及通话记录按地区统计.

       要实现这些统计,怎么做合适呢?

              1.统计查询?...源数据表中的数据日渐添加,等到数据量到达10w100w这样查询会非常慢的..

              2.依据统计的要求创建几张表,举例:如地区统计新建一张地区统计表有例如以下字段 date city  callNumber. 在创建一张历史通话记录表,大致与通话记录表差点儿相同,专门将通话记录的数据採集到通话历史表中,通话记录表仅仅保存当天数据,到每天0晨. 的时候将通话记录的统计到地区统计表中,然后将通话记录保存到历史通话记录表中,在删掉通话记录表中的数据,每天统计当天的数据插入地区统计,这一系列操作能够用存储过程来实现,用定时任务调用存储过程,统计查询的查地区统计表..

      3. 通话量,通话时长,通话的惬意评价数量,这样的众合报表,的实现也差点儿相同,仅仅只是统计表的结构不一样..也就添加用个CODE标示通话量、通话时长、通话的惬意评价数量

    存储过程代码:

    BEGIN
    	#通话归属地统计採集
    	DECLARE TEMP_CALL_NUMBER	INT(11);
    	DECLARE cnt	INT(1) DEFAULT 0;
    	DECLARE TEMP_PHONE_CITY VARCHAR(255);
    	DECLARE TEMP_CALL_TYPE VARCHAR(10);
    	#查询统计当天的通话信息 放到游标里面
    	DECLARE done TINYINT(1) DEFAULT 0 ;
    	DECLARE callRecordReportFrom CURSOR FOR
    	select phone_city as call_city, count(1) as call_number ,(case WHEN call_type='A' THEN '呼入' else '呼出' end) as call_type from  t_call_record  GROUP BY phone_city,call_type;
    
    
    	DECLARE CONTINUE HANDLER FOR NOT FOUND SET done=1;
      
    	#循环读取游标数据
    	OPEN callRecordReportFrom;
    		cursor_loop:LOOP
    		FETCH callRecordReportFrom INTO TEMP_PHONE_CITY,TEMP_CALL_NUMBER,TEMP_CALL_TYPE;
    		IF done = 1 THEN
    			LEAVE cursor_loop;
    		END IF;
    		#查询该城市是否已经存在
    	  SELECT COUNT(1) into cnt FROM city_from WHERE call_city = TEMP_PHONE_CITY AND call_type = TEMP_CALL_TYPE;
    		
    		#存在就改动将统计好的数据加进去
    		IF cnt > 0 THEN
    			UPDATE city_from SET 	call_number = call_number+TEMP_CALL_NUMBER  WHERE call_city = TEMP_PHONE_CITY AND call_type = TEMP_CALL_TYPE;
        END IF;
    		#不存在就新增一条数据
        IF cnt = 0 THEN
    			INSERT INTO city_from (call_city,call_number,call_type)
    			VALUES(TEMP_PHONE_CITY,TEMP_CALL_NUMBER,TEMP_CALL_TYPE);
        END IF;
    
    
    		END LOOP cursor_loop;
    		CLOSE callRecordReportFrom;
    END


  • 相关阅读:
    Eclipse快捷键大全
    如何查看JDK_API 2019.2.23
    JXL、POI操作Excel
    Eclipse 将builder文件夹下的classes文件改路径到WEB-INF下,以及常用快捷键
    系统分盘
    U盘被识别为其他设备(显示U盘图标但是不显示盘符)的解决办法
    Oracle+jsp+Servlet的员工表的简单增删改查
    2019年3月8日09:06:02 mybatis 一对多
    linux 协议栈分享
    fib
  • 原文地址:https://www.cnblogs.com/mfmdaoyou/p/7354123.html
Copyright © 2011-2022 走看看