有一组数据,想对数据分成不同组并记录频数,但是现在的SQL写出来组中无数据的分组没了,怎么能所有组都在然后不在组中的频数为0。 select TO_NUMBER(x) as x,fz,count(fz) from ( select case when ATTRIBUTE2<'3295' then '<3295' when ATTRIBUTE2>='3295' and ATTRIBUTE2<'3296' then '3295-3296' when ATTRIBUTE2>='3296' and ATTRIBUTE2<'3297' then '3296-3297' when ATTRIBUTE2>='3297' and ATTRIBUTE2<'3298' then '3297-3298' when ATTRIBUTE2>='3298' and ATTRIBUTE2<'3299' then '3298-3299' when ATTRIBUTE2>='3299' and ATTRIBUTE2<'3300' then '3299-3300' when ATTRIBUTE2>='3300' then '>=3300' end as fz, case when ATTRIBUTE2<'3295' then '3294.5' when ATTRIBUTE2>='3295' and ATTRIBUTE2<'3296' then '3295.5' when ATTRIBUTE2>='3296' and ATTRIBUTE2<'3297' then '3296.5' when ATTRIBUTE2>='3297' and ATTRIBUTE2<'3298' then '3297.5' when ATTRIBUTE2>='3298' and ATTRIBUTE2<'3299' then '3298.5' when ATTRIBUTE2>='3299' and ATTRIBUTE2<'3300' then '3299.5' when ATTRIBUTE2>='3300' then '>=3300.5' end as x from ( SELECT equip_id,ATTRIBUTE2 FROM MT_DATA_RECORD_YZ_OCV1 WHERE equip_id='2681.1' AND WORKCELL_ID ='58985.1' AND TO_CHAR(record_date,'YYYYMMDDHH24')<= TO_CHAR(SYSdate,'YYYYMMDD')||'20' AND TO_CHAR(record_date,'YYYYMMDDHH24')>= TO_CHAR(TO_CHAR(SYSdate,'YYYYMMDD')-1) ||'20' ORDER BY tag_record_date desc )) group by fz,x order by x 类似这样,所有分组都在,数据不在组内的频数为0 |