簡化sql中union all

SELECT   SUM (roadcount) AS roadcount, policezone, detachment, dutyzone, TYPE
    FROM (SELECT   COUNT (*) AS roadcount, policezone, detachment, dutyzone,
                   kind AS TYPE
              FROM sde.r_line
             WHERE roadtype != 3
          GROUP BY policezone, detachment, dutyzone, kind
          UNION ALL
          SELECT   COUNT (*) / 2 AS roadcount, policezone, detachment,
                   dutyzone, kind AS TYPE
              FROM sde.r_line
             WHERE roadtype = 3
          GROUP BY policezone, detachment, dutyzone, kind)
GROUP BY policezone, detachment, dutyzone, TYPE  

簡化sql
SELECT   SUM (roadcount) roadcount, policezone, detachment, dutyzone,
         kind TYPE
    FROM (SELECT DECODE (roadtype, 3, 0.5, 1) roadcount, policezone,
                 detachment, dutyzone, kind
            FROM sde.r_line)
--  WHERE roadtype != 3
GROUP BY policezone, detachment, dutyzone, kind 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章