日期:2014-05-17  浏览次数:20827 次

一条SQL语句通过很多的UNION ALL拼接的 能不能再进行优化了
SQL code


SELECT NVL(SUM(TIMELENGTH),0),COUNT(XLH),COUNT(DISTINCT XLH) FROM  CHANNELRESULT WHERE CHANNELNAME ='江苏卫视' and createtime  between  
to_date('2011-8-01 00:00:00','yyyy-MM-dd hh24:MI:ss') and to_date('2011-8-31 23:59:59','yyyy-MM-dd hh24:MI:ss')  UNION ALL 
SELECT NVL(SUM(TIMELENGTH),0),COUNT(XLH),COUNT(DISTINCT XLH) FROM CHANNELRESULT WHERE CHANNELNAME ='优漫卡通卫视' and  createtime between  
to_date('2011-8-01 00:00:00','yyyy-MM-dd hh24:MI:ss') and to_date('2011-8-31 23:59:59','yyyy-MM-dd hh24:MI:ss')  UNION ALL 
SELECT NVL(SUM(TIMELENGTH),0),COUNT(XLH),COUNT(DISTINCT XLH) FROM CHANNELRESULT WHERE CHANNELNAME ='北京卫视' and createtime  between  
to_date('2011-8-01 00:00:00','yyyy-MM-dd hh24:MI:ss') and to_date('2011-8-31 23:59:59','yyyy-MM-dd hh24:MI:ss') UNION ALL
SELECT NVL(SUM(TIMELENGTH),0),COUNT(XLH),COUNT(DISTINCT XLH) FROM CHANNELRESULT WHERE CHANNELNAME ='东方卫视' and createtime between 
to_date('2011-8-01 00:00:00','yyyy-MM-dd hh24:MI:ss') and to_date('2011-8-31 23:59:59','yyyy-MM-dd hh24:MI:ss') UNION ALL
SELECT NVL(SUM(TIMELENGTH),0),COUNT(XLH),COUNT(DISTINCT XLH) FROM CHANNELRESULT WHERE CHANNELNAME ='天津卫视' and createtime between 
to_date('2011-8-01 00:00:00','yyyy-MM-dd hh24:MI:ss') and to_date('2011-8-31 23:59:59','yyyy-MM-dd hh24:MI:ss') UNION ALL 
SELECT NVL(SUM(TIMELENGTH),0),COUNT(XLH),COUNT(DISTINCT XLH) FROM CHANNELRESULT WHERE CHANNELNAME ='重庆卫视' and createtime between  
to_date('2011-8-01 00:00:00','yyyy-MM-dd hh24:MI:ss') and to_date('2011-8-31 23:59:59','yyyy-MM-dd hh24:MI:ss') UNION ALL 
SELECT NVL(SUM(TIMELENGTH),0),COUNT(XLH),COUNT(DISTINCT XLH) FROM CHANNELRESULT WHERE CHANNELNAME ='安徽卫视' and createtime between 
to_date('2011-8-01 00:00:00','yyyy-MM-dd hh24:MI:ss') and to_date('2011-8-31 23:59:59','yyyy-MM-dd hh24:MI:ss') UNION ALL
SELECT NVL(SUM(TIMELENGTH),0),COUNT(XLH),COUNT(DISTINCT XLH) FROM CHANNELRESULT WHERE CHANNELNAME ='浙江卫视' and createtime between
to_date('2011-8-01 00:00:00','yyyy-MM-dd hh24:MI:ss') and to_date('2011-8-31 23:59:59','yyyy-MM-dd hh24:MI:ss') UNION ALL 
SELECT NVL(SUM(TIMELENGTH),0),COUNT(XLH),COUNT(DISTINCT XLH) FROM CHANNELRESULT WHERE CHANNELNAME ='广西卫视' and createtime between
 to_date('2011-8-01 00:00:00','yyyy-MM-dd hh24:MI:ss') and to_date('2011-8-31 23:59:59','yyyy-MM-dd hh24:MI:ss') UNION ALL 
 SELECT NVL (SUM(TIMELENGTH),0),COUNT(XLH),COUNT(DISTINCT XLH) FROM CHANNELRESULT WHERE CHANNELNAME ='湖南卫视' and createtime between  
 to_date('2011-8-01 00:00:00','yyyy-MM-dd hh24:MI:ss') and to_date('2011-8-31 23:59:59','yyyy-MM-dd hh24:MI:ss') UNION ALL 
 SELECT NVL(SUM(TIMELENGTH),0),COUNT(XLH),COUNT(DISTINCT XLH) FROM CHANNELRESULT WHERE CHANNELNAME ='湖北卫视' and createtime between  
 to_date('2011-8-01 00:00:00','yyyy-MM-dd hh24:MI:ss') and to_date('2011-8-31 23:59:59','yyyy-MM-dd hh24:MI:ss') UNION ALL 
 SELECT NVL(SUM(TIMELENGTH),0),COUNT(XLH),COUNT(DISTINCT XLH) FROM CHANNELRESULT WHERE CHANNELNAME ='辽宁卫视' and createtime between  
 to_date('2011-8-01 00:00:00','yyyy-MM-dd hh24:MI:ss') and to_date('2011-8-31 23:59:59','yyyy-MM-dd hh24:MI:ss') UNION ALL 
 SELECT NVL(SUM(TIMELENGTH),0),COUNT(XLH),COUNT(DISTINCT XLH) FROM CHANNELRESULT WHERE CHANNELNAME ='东南卫视' and createtime between  
 to_date('2011-8-01 00:00:00','yyyy-MM-dd hh24:MI:ss') and to_date('2011-8-31 23:59:59','yyyy-MM-dd hh24:MI:ss') UNION ALL 
 SELECT NVL(SUM(TIMELENGTH),0),COUNT(XLH),COUNT(DISTINCT XLH) FROM CHANNELRESULT WHERE CHANNELNAME ='山东卫视' and createtime between  
 to_date('2011-8-01 00:00:00','yyyy-MM-dd hh24:MI:ss') and to_date('2011-8-31 23:59:59','yyyy-MM-dd hh24:MI:ss') UNION ALL 
 SELECT NVL(SUM(TIMELENGTH),0),COUNT(XLH),COUNT(DISTINCT XLH) FROM CHANNELRESULT WHERE CHANNELNAME ='江西卫视' and createtime between  
 to_date('2011-8-01 00:00:00','yyyy-MM-dd hh24:MI:ss') and to_date('2011-8-31 23:59:59','yyyy-MM-dd hh24:MI:ss') UNION ALL