SELECT userarea,
COUNT(DISTINCT (CASE WHEN inserttime BETWEEN '2012-05-01 00:00:00' AND '2012-05-31 23:59:59' THEN phonecode ELSE '' END)) user_open,
COUNT(DISTINCT (CASE WHEN modifytime BETWEEN '2012-05-01 00:00:00' AND '2012-05-31 23:59:59' AND userstatus='9' THEN phonecode ELSE '' END)) user_cancel,
COUNT(DISTINCT (CASE WHEN inserttime<'2012-05-01 00:00:00' AND (userstatus='8' OR (userstatus='9' AND modifytime>='2012-05-01 00:00:00')) THEN phonecode ELSE '' END)) user_add,
COUNT(DISTINCT (CASE WHEN inserttime<='2012-05-31 23:59:59' AND (userstatus='8' OR (userstatus='9' AND modifytime>'2012-05-31 23:59:59')) THEN phonecode ELSE '' END)) user_final_num
FROM temp_a1
GROUP BY userarea这段语句怎么写效率会更高?
COUNT(DISTINCT (CASE WHEN inserttime BETWEEN '2012-05-01 00:00:00' AND '2012-05-31 23:59:59' THEN phonecode ELSE '' END)) user_open,
COUNT(DISTINCT (CASE WHEN modifytime BETWEEN '2012-05-01 00:00:00' AND '2012-05-31 23:59:59' AND userstatus='9' THEN phonecode ELSE '' END)) user_cancel,
COUNT(DISTINCT (CASE WHEN inserttime<'2012-05-01 00:00:00' AND (userstatus='8' OR (userstatus='9' AND modifytime>='2012-05-01 00:00:00')) THEN phonecode ELSE '' END)) user_add,
COUNT(DISTINCT (CASE WHEN inserttime<='2012-05-31 23:59:59' AND (userstatus='8' OR (userstatus='9' AND modifytime>'2012-05-31 23:59:59')) THEN phonecode ELSE '' END)) user_final_num
FROM temp_a1
GROUP BY userarea这段语句怎么写效率会更高?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货