sql group by和null

sql group by和null,sql,oracle,group-by,Sql,Oracle,Group By,它们是两张桌子 t_employee ID NUMBER, DEPARTMENT_ID NUMBER, CHIEF_ID NUMBER, NAME VARCHAR2(100 BYTE), SALARY NUMBER, BIRTH_DATE DATE, ADDRESS VARCHAR2(200 BYTE), STATUS VARCHAR2(1 BYTE)

它们是两张桌子

t_employee
   ID             NUMBER,
  DEPARTMENT_ID  NUMBER,
  CHIEF_ID       NUMBER,
  NAME           VARCHAR2(100 BYTE),
  SALARY         NUMBER,
  BIRTH_DATE     DATE,
  ADDRESS        VARCHAR2(200 BYTE),
  STATUS         VARCHAR2(1 BYTE)

我有一个问题:

打印员工(非经理)列表,按出生月份和状态分组 (也将空状态替换为“未定义”)

有什么想法吗?

类似这样的想法:

WITH T_EMPLOYEE
    AS (SELECT
             1 AS ID,
             2 AS CHIEF_ID,
             SYSDATE
             - 15000
                 AS BIRTH_DATE,
             'Y' AS STATUS
        FROM
             DUAL
        UNION ALL
        SELECT
             2 AS ID,
             3 AS CHIEF_ID,
             SYSDATE
             - 18000
                 AS BIRTH_DATE,
             'Y' AS STATUS
        FROM
             DUAL
        UNION ALL
        SELECT
             3 AS ID,
             NULL AS CHIEF_ID,
             SYSDATE
             - 19000
                 AS BIRTH_DATE,
             NULL AS STATUS
        FROM
             DUAL
        UNION ALL
        SELECT
             4 AS ID,
             3 AS CHIEF_ID,
             SYSDATE
             - 17000
                 AS BIRTH_DATE,
             NULL AS STATUS
        FROM
             DUAL
        UNION ALL
        SELECT
             5 AS ID,
             3 AS CHIEF_ID,
             SYSDATE
             - 18000
                 AS BIRTH_DATE,
             NULL AS STATUS
        FROM
             DUAL)
SELECT
      ID,
      TRUNC ( BIRTH_DATE ) AS DOB,
      NVL ( STATUS, 'Not Defined' ) AS STATUS
FROM
      T_EMPLOYEE
WHERE
      ID NOT IN (SELECT DISTINCT NVL ( CHIEF_ID, 0 ) FROM T_EMPLOYEE)
ORDER BY
      1;
希望这对您有所帮助:

insert into t_department values( 1, 'MANAGER');
insert into t_department values( 2, 'OTHERS');
insert into t_employee values( 1, 1, NULL ,'NAME-1', 50000, sysdate, 'ADDRESS','Y');
insert into t_employee VALUES( 2, 2, NULL, 'NAME-2', 40000, SYSDATE, 'ADDRESS','Y');

insert into t_employee values( 3, 2, null, 'NAME-3', 50000, sysdate-200, 'ADDRESS','Y');
insert into t_employee values( 4, 2, null, 'NAME-4', 40000, sysdate-100, 'ADDRESS','Y');
insert into t_employee values( 5, 2, null, 'NAME-5', 40000, sysdate-100, 'ADDRESS','Y');
insert into t_employee values( 6, 2, null, 'NAME-6', 40000, sysdate-100, 'ADDRESS',NULL);

select to_char(birth_date, 'mon') "month",
     LISTAGG(e.name||'('||NVL(e.status,'Not Defined')||')', ',') WITHIN GROUP (
ORDER BY TO_CHAR(BIRTH_DATE, 'mon')) AS lists
FROM t_employee e
JOIN t_department d
ON( e.department_id = d.id)
where d.name       <> 'MANAGER'
GROUP BY TO_CHAR(BIRTH_DATE, 'mon');

MONTH        LISTS                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          
------------ ------------------------------------------
apr          NAME-3(Y)
jul          NAME-4(Y),NAME-5(Y),NAME-6(Not Defined)
oct          NAME-2(Y)
插入t_部门值(1,“经理”);
在t_部门值中插入(2,‘其他’);
在t_员工值中插入(1,1,NULL,'NAME-1',50000,sysdate,'ADDRESS','Y');
在t_员工值中插入(2,2,NULL,'NAME-2',40000,SYSDATE,'ADDRESS','Y');
在t_员工值中插入(3,2,null,'NAME-3',50000,sysdate-200,'ADDRESS','Y');
在t_员工值中插入(4,2,null,'NAME-4',40000,sysdate-100,'ADDRESS','Y');
在t_员工值中插入(5,2,null,'NAME-5',40000,sysdate-100,'ADDRESS','Y');
在t_员工值中插入(6,2,null,'NAME-6',40000,sysdate-100,'ADDRESS',null);
选择to_char(出生日期,'mon')“月”,
组中的LISTAGG(e.name | |'('| | NVL(e.status,'notdefined')| |'),','))(
订购人以列表形式发送至字符(出生日期,'mon')
来自t_员工e
加入清华大学d系
ON(e.department_id=d.id)
其中d.名称“经理”
分组依据TO_CHAR(出生日期,'mon');
月份清单                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              
------------ ------------------------------------------
四月名称-3(Y)
7月名称-4(Y)、名称-5(Y)、名称-6(未定义)
十月名称-2(Y)
或者简单地说:

select to_char(birth_date, 'mon') month, nvl(e.status,'Not Defined')status,
     listagg(e.name, ',') 
     WITHIN GROUP (ORDER BY TO_CHAR(BIRTH_DATE, 'mon')) AS lists
FROM t_employee e
JOIN t_department d
ON( e.department_id = d.id)
where d.name       <> 'MANAGER'
group by to_char(birth_date, 'mon'),e.status;

MONTH        STATUS                           LISTS                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          
------------ -------------------------------- -------
apr          Y                                NAME-3                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           
jul          Not Defined                      NAME-6                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           
jul          Y                                NAME-4,NAME-5                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    
oct          Y                                NAME-2      
,
listagg(例如名称,,)
在组内(订购人至字符(出生日期,'mon'))作为列表
来自t_员工e
加入清华大学d系
ON(e.department_id=d.id)
其中d.名称“经理”
分组依据to_char(出生日期,'mon'),例如状态;
月份状态列表
select to_char(birth_date, 'mon') month, nvl(e.status,'Not Defined')status,
     listagg(e.name, ',') 
     WITHIN GROUP (ORDER BY TO_CHAR(BIRTH_DATE, 'mon')) AS lists
FROM t_employee e
JOIN t_department d
ON( e.department_id = d.id)
where d.name       <> 'MANAGER'
group by to_char(birth_date, 'mon'),e.status;

MONTH        STATUS                           LISTS                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          
------------ -------------------------------- -------
apr          Y                                NAME-3                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           
jul          Not Defined                      NAME-6                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           
jul          Y                                NAME-4,NAME-5                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    
oct          Y                                NAME-2