SELECT T1.TEAMID, --机构代码                  
         T1.PERSONID,    --需要统计的字段    
        (select AGESECTIONCODE from ANAREPORT11.CD_ZK_PERSON_AGE_SEG A where DECODE(T2.BIRTHDAY,        
                NULL,        
                0,        
                SUBSTR('2012-03-12', 1, 4) - TO_CHAR(T2.BIRTHDAY, 'YYYY'))>= A.Min
                 And
                DECODE(T2.BIRTHDAY,        
                NULL,        
                0,        
                SUBSTR('2012-03-12', 1, 4) - TO_CHAR(T2.BIRTHDAY, 'YYYY'))<A.Max )
  AGESECTIONCODE, --年龄分段代码          
         T2.EDUCATIONCODE, --学历代码           
         DECODE(T3.PERSONID, NULL, 0, 1) ISLEADER, --是否主管              
         T2.SEXCODE, --性别代码          
         (select WORKYEARSECTIONCODE from ANAREPORT11.cd_zk_person_workyear_seg B where DECODE   (T2.BIRTHDAY,        
                NULL,        
                0,        
                SUBSTR('2012-03-12', 1, 4) - TO_CHAR(T2.BIRTHDAY, 'YYYY'))>= B.Min
                 And
                DECODE(T2.BIRTHDAY,        
                NULL,        
                0,        
                SUBSTR('2012-03-12', 1, 4) - TO_CHAR(T2.BIRTHDAY, 'YYYY'))<B.Max )
          WORKYEARSECTIONCODE, --从业年限分段代码                
         T2.RECRUITORIGINCODE -- 招募来源代码                         
    FROM ANAREPORT11.ODS_SAL_TEAM_MEMBER T1        
    LEFT JOIN (SELECT *        
                 FROM ANAREPORT11.ODS_SAL_PERSON        
                WHERE PERSONSTATUSCODE = '1') T2 ON T1.PERSONID =        
                                                    T2.PERSONID        
        LEFT JOIN ANAREPORT11.ODS_SAL_TEAM_LEADER T3 ON T1.TEAMID = T3.TEAMID        
                                                AND T1.PERSONID =        
                                                    T2.PERSONID    
红色字段是从另一个表中查询出来的数据或者表达式,我现在想统计count(T1.PERSONID),但是红色字段无法group by 怎么解决这个问题啊?

解决方案 »

  1.   

    分析函数count() over(partition by ...order by )
      

  2.   

    count(T1.PERSONID)over(partition by 字段 order by 字段) 就不用在group by !
      

  3.   

    红色好多啊,看晕了,说你要实现的功能吧
    分析函数可以代替group by的功能,是不是你需要的
    比如楼上写的
    count(T1.PERSONID)over(partition by 字段1 order by 字段2)
    实际上就是以字段1进行了group by了