险种大类统计.sql 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  1. CREATE TABLE shanglifeecif.riskcode_statistics(
  2. id string,
  3. kindcode string DEFAULT NULL COMMENT '险种大类代码',
  4. kindNAme string DEFAULT NULL COMMENT '险种大类名称',
  5. khnum string DEFAULT NULL COMMENT '客户数量',--pwcomp ,-- '承保分公司 HEALTH_INSURANCE_LISTING.AGENTGROUPAREA 营业区HEALTH_INSURANCE_LISTING.AGENTGROUP 营业部',
  6. tatolprem string DEFAULT NULL COMMENT '总保额'
  7. ) COMMENT '险种大类统计表'
  8. STORED AS ES
  9. with shard number 10
  10. replication 1;
  11. CREATE OR REPLACE PROCEDURE shanglifeecif.customer_risk_temp()
  12. IS
  13. DECLARE
  14. BEGIN
  15. DELETE FROM shanglifeecif.customer_risk_temp;
  16. INSERT INTO shanglifeecif.customer_risk_temp(
  17. id,
  18. scustid,
  19. name,
  20. gender,
  21. idcard,
  22. birthday,
  23. policyno,
  24. productname,
  25. riskcategoriesname,
  26. risk
  27. )
  28. SELECT
  29. row_number()over(),
  30. si.scustid,
  31. si.name,
  32. CASE si.gender
  33. WHEN '0' THEN '男'
  34. WHEN '1' THEN '女'
  35. END AS gender,
  36. si.idcard,
  37. to_char(si.birthday,"yyyy-MM-dd") birthday,
  38. sit.policyno,
  39. sit.productname,
  40. sit.risk_categories_name,
  41. sit.Risk
  42. FROM shanglifeecif.individual si
  43. LEFT JOIN shanglifeecif.insurancearrangement sit ON si.scustid = sit.applicantscustid;
  44. END ;
  45. /
  46. CREATE OR REPLACE PROCEDURE shanglifeecif.riskcode_statistics() IS
  47. DECLARE
  48. BEGIN
  49. DELETE FROM shanglifeecif.riskcode_statistics;
  50. insert into shanglifeecif.riskcode_statistics (
  51. id,
  52. kindName,
  53. khnum,
  54. tatolprem
  55. ) --险种大类统计
  56. SELECT
  57. row_number()over(),
  58. temp.kindName,
  59. temp.khnum,
  60. temp.tatolprem
  61. FROM (
  62. SELECT
  63. crt.riskcategoriesname AS kindName,
  64. count(DISTINCT scustid) AS khnum,
  65. sum(risk) AS tatolprem
  66. FROM shanglifeecif.customer_risk_temp crt
  67. WHERE crt.riskcategoriesname IS NOT null
  68. GROUP BY crt.riskcategoriesname
  69. ) temp;
  70. EXCEPTION
  71. WHEN HIVE_EXCEPTION THEN
  72. INSERT INTO shanglifeecif.exception_log(log_code,log_msg,log_time) VALUES (sqlcode(),sqlerrm(),sysdate());
  73. WHEN Others THEN
  74. INSERT INTO shanglifeecif.exception_log(log_code,log_msg,log_time) VALUES (sqlcode(),sqlerrm(),sysdate());
  75. END ;
  76. /*
  77. CREATE OR REPLACE PROCEDURE shanglifeecif.riskcode_statistics() IS
  78. DECLARE
  79. BEGIN
  80. DELETE FROM shanglifeecif.riskcode_statistics;
  81. insert into shanglifeecif.riskcode_statistics (
  82. id,
  83. kindName,
  84. khnum,
  85. tatolprem
  86. ) --险种大类统计
  87. SELECT
  88. row_number()over(),
  89. temp.kindName,
  90. temp.khnum,
  91. temp.tatolprem
  92. FROM (
  93. select
  94. a.risk_categories_name AS kindName ,
  95. count(*) AS khnum,
  96. nvl(sum(a.prem),0) AS tatolprem
  97. FROM shanglifeecif.insurancearrangement a GROUP BY a.risk_categories_name
  98. ) temp;
  99. insert into shanglifeecif.riskcode_statistics (
  100. id,
  101. kindcode,
  102. kindNAme,
  103. khnum,
  104. tatolprem
  105. ) --险种大类统计
  106. SELECT row_number()over(),temp.kindcode,temp.kindname,temp.khnum,temp.totalPrem FROM (
  107. SELECT sl.kindcode,
  108. (CASE sl.kindcode
  109. WHEN 'A' THEN '意外伤害险'
  110. WHEN 'U' THEN '万能保险'
  111. WHEN 'R' THEN '年金保险'
  112. WHEN 'S' THEN '重疾保险'
  113. WHEN 'L' THEN '人寿保险'
  114. WHEN 'H' THEN '健康险'
  115. END) AS kindname,
  116. count(spi.idno) AS khnum,nvl(sum(spi.prem),0) AS totalPrem FROM lmriskapp sl
  117. LEFT JOIN policy_information spi ON spi.riskcode = sl.riskcode
  118. GROUP BY sl.kindcode
  119. ) temp;
  120. EXCEPTION
  121. WHEN HIVE_EXCEPTION THEN
  122. INSERT INTO shanglifeecif.exception_log(log_code,log_msg,log_time) VALUES (sqlcode(),sqlerrm(),sysdate());
  123. WHEN Others THEN
  124. INSERT INTO shanglifeecif.exception_log(log_code,log_msg,log_time) VALUES (sqlcode(),sqlerrm(),sysdate());
  125. END ;
  126. */