wk_bi_app_access_stat.sql 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. CREATE PROCEDURE lawe.wk_bi_app_access_stat(in bg_time varchar(300), in ed_time varchar(300))
  2. BEGIN
  3. DELETE FROM bi_app_access_stat WHERE dtype='HOUR' and thedvalue between bg_time and ed_time;
  4. insert into bi_app_access_stat
  5. SELECT
  6. 'HOUR' AS dtype,
  7. DATE_FORMAT(A.time_mark,'%Y%m%d%H') as thedvalue,
  8. B.ITM_NETGROUP_ID AS NET_ID,
  9. C.NAME AS net_name,
  10. A.ORGAN_ID AS ORGAN_ID,
  11. D.short_name AS ORGAN_name,
  12. A.app_id as app_id,
  13. B.ITM_APP_NAME AS app_name,
  14. sum(A.visit_count) as visit_count,
  15. sum(A.operate_count) as operate_count ,
  16. CASE
  17. B.PRIORITY
  18. WHEN 'low' THEN
  19. '一般应用'
  20. WHEN 'important' THEN
  21. '重要应用'
  22. WHEN 'high' THEN
  23. '核心应用' ELSE '未知'
  24. END AS PRIORITY,
  25. F.NAME
  26. FROM app_visit_log_region as A
  27. LEFT JOIN itm_app B on A.app_id=B.itm_app_id
  28. LEFT JOIN ( SELECT VALUE, NAME FROM m_com_dict WHERE dict_index = 'itm_resources_netcode' ) C ON C.VALUE = B.ITM_NETGROUP_ID
  29. LEFT JOIN pub_organ D ON D.id = A.ORGAN_ID
  30. LEFT JOIN ( SELECT temp1.ITM_APP_ID, temp2.NAME FROM itm_app temp1 LEFT JOIN m_com_dict temp2 ON temp1.app_type = temp2.VALUE ) AS F ON A.app_id = F.itm_app_id
  31. WHERE
  32. DATE_FORMAT(A.time_mark,'%Y%m%d%H') between bg_time and ed_time
  33. GROUP BY
  34. A.app_id, A.ORGAN_ID, B.ITM_NETGROUP_ID, B.ITM_APP_NAME, C.NAME, D.short_name, B.priority, F.NAME, B.PRIORITY, A.time_mark, DATE_FORMAT(A.time_mark,'%Y%m%d%H');
  35. DELETE FROM bi_app_access_stat WHERE dtype='DAY' and thedvalue=SUBSTRING(bg_time, 1, 8);
  36. insert into bi_app_access_stat
  37. SELECT
  38. 'DAY' AS dtype,
  39. substring(thedvalue,1,8) AS thedvalue,
  40. NET_ID,
  41. net_name,
  42. ORGAN_ID,
  43. ORGAN_name,
  44. app_id,
  45. app_name,
  46. sum(visit_count) as visit_count,
  47. sum(operate_count) as operate_count ,
  48. CASE
  49. PRIORITY
  50. WHEN 'low' THEN
  51. '一般应用'
  52. WHEN 'important' THEN
  53. '重要应用'
  54. WHEN 'high' THEN
  55. '核心应用' ELSE '未知'
  56. END AS PRIORITY,
  57. app_type
  58. FROM bi_app_access_stat
  59. WHERE dtype = 'HOUR' and substring(thedvalue,1,8)= SUBSTRING(bg_time, 1, 8)
  60. GROUP BY dtype,thedvalue,NET_ID,net_name,ORGAN_ID,ORGAN_name,app_id,app_name,priority,app_type,substring(thedvalue,1,8);
  61. DELETE FROM bi_app_access_stat WHERE dtype='MONTH' and thedvalue=SUBSTRING(bg_time, 1, 6);
  62. insert into bi_app_access_stat
  63. SELECT
  64. 'MONTH' AS dtype,
  65. substring(thedvalue,1,6) AS thedvalue,
  66. NET_ID,
  67. net_name,
  68. ORGAN_ID,
  69. ORGAN_name,
  70. app_id,
  71. app_name,
  72. sum(visit_count) as visit_count,
  73. sum(operate_count) as operate_count ,
  74. CASE
  75. PRIORITY
  76. WHEN 'low' THEN
  77. '一般应用'
  78. WHEN 'important' THEN
  79. '重要应用'
  80. WHEN 'high' THEN
  81. '核心应用' ELSE '未知'
  82. END AS PRIORITY,
  83. app_type
  84. FROM bi_app_access_stat
  85. WHERE dtype = 'DAY' and substring(thedvalue,1,6)= SUBSTRING(bg_time, 1, 6)
  86. GROUP BY dtype,thedvalue,NET_ID,net_name,ORGAN_ID,ORGAN_name,app_id,app_name,priority,app_type,substring(thedvalue,1,6);
  87. DELETE FROM bi_app_access_stat WHERE dtype='YEAR' and thedvalue=SUBSTRING(bg_time, 1, 4);
  88. insert into bi_app_access_stat
  89. SELECT
  90. 'YEAR' AS dtype,
  91. substring(thedvalue,1,4) AS thedvalue,
  92. NET_ID,
  93. net_name,
  94. ORGAN_ID,
  95. ORGAN_name,
  96. app_id,
  97. app_name,
  98. sum(visit_count) as visit_count,
  99. sum(operate_count) as operate_count ,
  100. CASE
  101. PRIORITY
  102. WHEN 'low' THEN
  103. '一般应用'
  104. WHEN 'important' THEN
  105. '重要应用'
  106. WHEN 'high' THEN
  107. '核心应用' ELSE '未知'
  108. END AS PRIORITY,
  109. app_type
  110. FROM bi_app_access_stat
  111. WHERE dtype = 'MONTH' and substring(thedvalue,1,4)= SUBSTRING(bg_time, 1, 4)
  112. GROUP BY dtype,thedvalue,NET_ID,net_name,ORGAN_ID,ORGAN_name,app_id,app_name,priority,app_type,substring(thedvalue,1,4);
  113. END