Day6|242、349、202、1

1 SELECT 2 a.grid_name_1 县区网格, 3 f.当月_1 "新入网(户)", 4 CAST(f.当月 * 100 AS DECIMAL(10, 0)) || '%' "高质入网占比(25分)", 5 CAST(e.当月_10 * 100 AS DECIMAL(10, 1)) || '%' "首存率(10元以内)(5分)", 6 CAST(e.当月_50 * 100 AS DECIMAL(10, 1)) || '%' "首存率(50元以上)(20分)", 7 CAST(h.当月 * 100 AS DECIMAL(10, 1)) || '%' "纯新增占比(20分)", 8 CAST(f.当月_2 * 100 AS DECIMAL(10, 1)) || '%' "宽带融合率(10分)", 9 CAST(g.当月 * 100 AS DECIMAL(10, 0)) || '%' "入网当月停机率(10分)", 10 CAST(g.当月3 * 100 AS DECIMAL(10, 0)) || '%' "近2月新增停机率(10分)", 11 RANK() OVER ( 12 ORDER BY 13 f.当月 * 25 + (1 - e.当月_10) * 5 + e.当月_50 * 20 + h.当月 * 20 + f.当月_2 * 10 + (1 - g.当月) * 10 + (1 - g.当月3) * 10 desc 14 ) AS 综合评估排名 15 FROM 16 ( 17 SELECT 18 DISTINCT a.* 19 FROM 20 mtuser_ww.yutianhui_wangge_dingkong_day a 21 ) a 22 LEFT JOIN( 23 SELECT 24 a.grid_code, 25 COUNT( 26 DISTINCT CASE 27 WHEN b.yc_fee >= '50' THEN b.user_id 28 ELSE NULL 29 END 30 ) / NULLIF(COUNT(DISTINCT a.serv_number), 0) 当月_50, 31 COUNT( 32 DISTINCT CASE 33 WHEN b.yc_fee <= '10' THEN b.user_id 34 ELSE NULL 35 END 36 ) / NULLIF(COUNT(DISTINCT a.serv_number), 0) 当月_10 37 FROM 38 bdcis.tb_cis_user_induser_info_dtal a 39 LEFT JOIN ( 40 SELECT 41 a.area_code, 42 a.user_id, 43 SUM(a.yc_fee) AS yc_fee 44 FROM 45 ( 46 --普通预存费 47 SELECT 48 t11.area_code, 49 t11.user_id, 50 t11.recv_cash / 100 AS yc_fee 51 FROM 52 ( 53 SELECT 54 b.area_code, 55 a.user_id, 56 recv_cash 57 FROM 58 bdbds.tb_bds_acct_am_busi_dtal_day a, 59 bdcis.tb_cis_user_induser_day_all b 60 WHERE 61 b.statis_day = to_char(CURRENT_DATE -1, 'yyyymmdd') 62 AND b.join_date BETWEEN date_trunc('month', CURRENT_DATE):: DATE 63 AND last_day(CURRENT_DATE) 64 AND a.user_id = b.user_id 65 AND cancel_flag = 'U' 66 AND b.cust_count = 1 67 AND recv_cash > 0 68 AND a.done_date BETWEEN date_trunc('month', CURRENT_DATE):: DATE 69 AND last_day(CURRENT_DATE) 70 AND TRIM(business_type_id) IN ( 71 '4164', 72 '46301', 73 '4632', 74 '49051', 75 '2101', 76 '4130', 77 '4132', 78 '4178', 79 '41901', 80 '4731', 81 '4945', 82 '4172', 83 '4369', 84 '4871', 85 '4133', 86 '4162', 87 '4370', 88 '8936', 89 '4103', 90 '4105', 91 '8112', 92 '4131', 93 '4158', 94 '4187', 95 '4833', 96 '4850', 97 '12440', 98 '4102', 99 '4156', 100 '4470', 101 '4630', 102 '4190', 103 '11028', 104 '4101', 105 '4644', 106 '4905', 107 '4782', 108 '491', 109 '4234', 110 '491', 111 '4234', 112 '4735', 113 '8932' 114 ) 115 ) t11 116 LEFT JOIN ( 117 SELECT 118 DISTINCT sub_user_id 119 FROM 120 bdcis.tb_cis_user_induser_main_sub_card_list_day 121 WHERE 122 sub_join_date BETWEEN CAST(to_char(CURRENT_DATE, 'yyyymm') || '01' AS DATE) 123 AND last_day(CURRENT_DATE) 124 ) t12 ON t11.user_id = t12.sub_user_id 125 LEFT JOIN ( 126 SELECT 127 DISTINCT user_id 128 FROM 129 bdbds.tb_bds_ser_user_offer_12_sprom_day 130 WHERE 131 create_date BETWEEN CAST(to_char(CURRENT_DATE, 'yyyymm') || '01' AS DATE) 132 AND last_day(CURRENT_DATE) 133 AND offer_id IN ( 134 '101090083976', 135 '101090082998', 136 '101090082996', 137 '101090082997', 138 '101091820489' 139 ) 140 ) t13 ON t11.user_id = t13.user_id 141 WHERE 142 t12.sub_user_id IS NULL 143 AND t13.user_id IS NULL 144 UNION 145 --活动预存费 146 SELECT 147 c.area_code, 148 a.user_id, 149 b.real_fee / 100 AS yc_fee 150 FROM 151 bdbds.tb_bds_ser_user_work_list_day a, 152 bdbds.tb_bds_acct_am_busi_charge_day b, 153 bdcis.tb_cis_user_induser_day_all c 154 WHERE 155 a.order_id = b.order_id 156 AND a.user_id = c.user_id 157 AND c.statis_day = to_char(CURRENT_DATE -1, 'yyyymmdd') 158 AND c.join_date BETWEEN date_trunc('month', CURRENT_DATE):: DATE 159 AND last_day(CURRENT_DATE) 160 AND b.charge_date BETWEEN date_trunc('month', CURRENT_DATE):: DATE 161 AND last_day(CURRENT_DATE) 162 AND c.cust_count = 1 163 AND c.user_id NOT IN ( 164 SELECT 165 DISTINCT sub_user_id 166 FROM 167 bdcis.tb_cis_user_induser_main_sub_card_list_day 168 WHERE 169 sub_join_date BETWEEN date_trunc('month', CURRENT_DATE):: DATE 170 AND last_day(CURRENT_DATE) 171 ) 172 AND c.user_id NOT IN ( 173 SELECT 174 DISTINCT user_id 175 FROM 176 bdbds.tb_bds_ser_user_offer_12_sprom_day 177 WHERE 178 create_date BETWEEN date_trunc('month', CURRENT_DATE):: DATE 179 AND last_day(CURRENT_DATE) 180 AND offer_id IN ( 181 '101090083976', 182 '101090082998', 183 '101090082996', 184 '101090082997', 185 '101091820489' 186 ) 187 ) 188 AND fee_item_id IN ( 189 '23000034', 190 '21000018', 191 '21000100', 192 '21000100', 193 '21000013', 194 '21000050', 195 '26000012', 196 '21000100' 197 ) 198 ) a 199 GROUP BY 200 1, 201 2 202 ) b ON a.user_id = b.user_id 203 AND b.yc_fee >= '10' 204 WHERE 205 a.join_date BETWEEN date_trunc('month', CURRENT_DATE):: DATE 206 AND last_day(CURRENT_DATE) 207 AND cust_count = '1' 208 AND plan_id NOT IN ( 209 '100000999555', 210 '100000935109', 211 '100000999659', 212 '100000999660', 213 '100000999555' 214 ) 215 GROUP BY 216 1 217 ) e ON a.grid_code = e.grid_code 218 LEFT JOIN( 219 SELECT 220 grid_code, 221 CAST( 222 COUNT( 223 DISTINCT CASE 224 WHEN b.plan_fee >= '79' THEN a.serv_number 225 ELSE NULL 226 END 227 ) / NULLIF(COUNT(DISTINCT a.serv_number), 0) AS DECIMAL(10, 1) 228 ) 当月, 229 COUNT(DISTINCT a.serv_number) 当月_1, 230 CAST( 231 COUNT(DISTINCT c.fix_serv_number_1) / NULLIF(COUNT(DISTINCT a.serv_number), 0) AS DECIMAL(10, 1) 232 ) 当月_2, 233 COUNT( 234 DISTINCT CASE 235 WHEN b.plan_fee <= '18' THEN a.serv_number 236 ELSE NULL 237 END 238 ) 当月18_1, 239 CAST( 240 COUNT( 241 DISTINCT CASE 242 WHEN b.plan_fee <= '18' THEN a.serv_number 243 ELSE NULL 244 END 245 ) / NULLIF(COUNT(DISTINCT a.serv_number), 0) AS DECIMAL(10, 1) 246 ) 当月18, 247 COUNT( 248 DISTINCT CASE 249 WHEN b.plan_fee BETWEEN '18.01' AND '78.99' THEN a.serv_number 250 ELSE NULL 251 END 252 ) 当月79_1, 253 CAST( 254 COUNT( 255 DISTINCT CASE 256 WHEN b.plan_fee BETWEEN '18.01' AND '78.99' THEN a.serv_number 257 ELSE NULL 258 END 259 ) / NULLIF(COUNT(DISTINCT a.serv_number), 0) AS DECIMAL(10, 1) 260 ) 当月79, 261 COUNT( 262 DISTINCT CASE 263 WHEN b.plan_fee >= '79' THEN a.serv_number 264 ELSE NULL 265 END 266 ) 当月99_1, 267 CAST( 268 COUNT( 269 DISTINCT CASE 270 WHEN b.plan_fee >= '79' THEN a.serv_number 271 ELSE NULL 272 END 273 ) / NULLIF(COUNT(DISTINCT a.serv_number), 0) AS DECIMAL(10, 1) 274 ) 当月99, 275 ----------- 276 CAST( 277 SUM( 278 CASE 279 WHEN b.plan_fee <= '18' THEN a.gprs_use_b / 1024 / 1024 / 1024 280 ELSE '0' 281 END 282 ) / NULLIF( 283 COUNT( 284 DISTINCT CASE 285 WHEN b.plan_fee <= '10' THEN a.serv_number 286 ELSE NULL 287 END 288 ), 289 0 290 ) AS DECIMAL(10, 2) 291 ) 当月10dou, 292 CAST( 293 SUM( 294 CASE 295 WHEN b.plan_fee <= '18' THEN a.total_fee / 100 296 ELSE '0' 297 END 298 ) / NULLIF( 299 COUNT( 300 DISTINCT CASE 301 WHEN b.plan_fee <= '10' THEN a.serv_number 302 ELSE NULL 303 END 304 ), 305 0 306 ) AS DECIMAL(10, 1) 307 ) 当月10arpu, 308 CAST( 309 SUM( 310 CASE 311 WHEN b.plan_fee <= '18' THEN a.mo_call_duration / 60 312 ELSE '0' 313 END 314 ) / NULLIF( 315 COUNT( 316 DISTINCT CASE 317 WHEN b.plan_fee <= '10' THEN a.serv_number 318 ELSE NULL 319 END 320 ), 321 0 322 ) AS DECIMAL(10, 0) 323 ) 当月10mou, 324 ----------- 325 CAST( 326 SUM( 327 CASE 328 WHEN b.plan_fee BETWEEN '18.01' AND '78.9' THEN a.gprs_use_b / 1024 / 1024 / 1024 329 ELSE '0' 330 END 331 ) / NULLIF( 332 COUNT( 333 DISTINCT CASE 334 WHEN b.plan_fee BETWEEN '10.01' AND '38.9' THEN a.serv_number 335 ELSE NULL 336 END 337 ), 338 0 339 ) AS DECIMAL(10, 2) 340 ) 当月39dou, 341 CAST( 342 SUM( 343 CASE 344 WHEN b.plan_fee BETWEEN '18.01' AND '78.9' THEN a.total_fee / 100 345 ELSE '0' 346 END 347 ) / NULLIF( 348 COUNT( 349 DISTINCT CASE 350 WHEN b.plan_fee BETWEEN '10.01' AND '38.9' THEN a.serv_number 351 ELSE NULL 352 END 353 ), 354 0 355 ) AS DECIMAL(10, 1) 356 ) 当月39arpu, 357 CAST( 358 SUM( 359 CASE 360 WHEN b.plan_fee BETWEEN '18.01' AND '78.9' THEN a.mo_call_duration / 60 361 ELSE '0' 362 END 363 ) / NULLIF( 364 COUNT( 365 DISTINCT CASE 366 WHEN b.plan_fee BETWEEN '10.01' AND '38.9' THEN a.serv_number 367 ELSE NULL 368 END 369 ), 370 0 371 ) AS DECIMAL(10, 0) 372 ) 当月39mou, 373 ----------- 374 CAST( 375 SUM( 376 CASE 377 WHEN b.plan_fee >= '79' THEN a.gprs_use_b / 1024 / 1024 / 1024 378 ELSE '0' 379 END 380 ) / NULLIF( 381 COUNT( 382 DISTINCT CASE 383 WHEN b.plan_fee BETWEEN '39' AND '79' THEN a.serv_number 384 ELSE NULL 385 END 386 ), 387 0 388 ) AS DECIMAL(10, 2) 389 ) 当月79dou, 390 CAST( 391 SUM( 392 CASE 393 WHEN b.plan_fee >= '79' THEN a.total_fee / 100 394 ELSE '0' 395 END 396 ) / NULLIF( 397 COUNT( 398 DISTINCT CASE 399 WHEN b.plan_fee BETWEEN '39' AND '79' THEN a.serv_number 400 ELSE NULL 401 END 402 ), 403 0 404 ) AS DECIMAL(10, 1) 405 ) 当月79arpu, 406 CAST( 407 SUM( 408 CASE 409 WHEN b.plan_fee >= '79' THEN a.mo_call_duration / 60 410 ELSE '0' 411 END 412 ) / NULLIF( 413 COUNT( 414 DISTINCT CASE 415 WHEN b.plan_fee BETWEEN '39' AND '79' THEN a.serv_number 416 ELSE NULL 417 END 418 ), 419 0 420 ) AS DECIMAL(10, 0) 421 ) 当月79mou 422 FROM 423 bdcis.tb_cis_user_induser_info_dtal a 424 LEFT JOIN mtuser_ww.tb_kr_group_PLAN_name_mating b ON a.plan_id = b.plan_id 425 LEFT JOIN ( 426 SELECT 427 serv_number, 428 fix_serv_number_1 429 FROM 430 bdcis.tb_cis_user_induser_broadband_day 431 WHERE 432 join_date >= date_trunc('month', CURRENT_DATE):: DATE 433 ) c ON c.fix_serv_number_1 = a.serv_number 434 WHERE 435 a.cust_count = '1' 436 AND join_date BETWEEN date_trunc('month', CURRENT_DATE):: DATE 437 AND last_day(CURRENT_DATE) 438 GROUP BY 439 1 440 ) f ON a.grid_code = f.grid_code 441 LEFT JOIN ( 442 SELECT 443 grid_code, 444 CAST( 445 COUNT( 446 DISTINCT CASE 447 WHEN stop_flag IN ('1', '2') 448 AND join_date >= date_trunc('month', CURRENT_DATE):: DATE THEN serv_number 449 ELSE NULL 450 END 451 ) / NULLIF( 452 COUNT( 453 DISTINCT CASE 454 WHEN join_date >= date_trunc('month', CURRENT_DATE):: DATE THEN serv_number 455 ELSE NULL 456 END 457 ), 458 0 459 ) AS DECIMAL(10, 1) 460 ) 当月, 461 CAST( 462 COUNT( 463 DISTINCT CASE 464 WHEN stop_flag IN ('1', '2') THEN serv_number 465 ELSE NULL 466 END 467 ) / NULLIF(COUNT(DISTINCT serv_number), 0) AS DECIMAL(10, 1) 468 ) 当月3 469 FROM 470 bdcis.tb_cis_user_induser_day a 471 LEFT JOIN mtuser_ww.tb_kr_group_PLAN_name_mating b ON a.plan_id = b.plan_id 472 WHERE 473 a.statis_day = to_char(CURRENT_DATE -1, 'yyyymmdd') 474 AND user_type = '1' 475 AND join_date BETWEEN DATE(to_char(CURRENT_DATE, 'yyyymm') -1 || '01') 476 AND last_day(date_trunc('month', CURRENT_DATE):: DATE) 477 GROUP BY 478 1 479 ) g ON a.grid_code = g.grid_code 480 LEFT JOIN ( 481 SELECT 482 a.grid_code, 483 COUNT(DISTINCT b.serv_number) / NULLIF(COUNT(DISTINCT a.serv_number), 0) 当月 484 FROM 485 bdcis.tb_cis_user_induser_info_dtal a 486 LEFT JOIN bdcis.tb_cis_user_induser_add_user_net_type_analysis_day b ON a.serv_number = b.serv_number 487 AND b.NET_TYPE = '纯新增' 488 AND b.join_date >= date_trunc('month', CURRENT_DATE):: DATE 489 WHERE 490 a.cust_count = '1' 491 AND a.join_date >= date_trunc('month', CURRENT_DATE):: DATE 492 GROUP BY 493 1 494 ) h ON a.grid_code = h.grid_code 495 ORDER BY 496 综合评估排名 desc 497 LIMIT 498 10; 帮忙优化sql,每行的序号忽略
08-19
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值