代码之家  ›  专栏  ›  技术社区  ›  Sathyajith Bhat ron tornambe

SQL查询以获取日历年内加入的员工数,按月细分

  •  0
  • Sathyajith Bhat ron tornambe  · 技术社区  · 15 年前

    Month |  Employees
    ------|-----------
    Jan   |      15
    Feb   |      30
    

    我想出了一个查询来获取特定月份的数据

    SELECT * FROM (
    SELECT COUNT(EMP_NO), EMP_JN_DT
      FROM EMP_REG WHERE 
     EMP_JN_DT between '01-NOV-09'  AND '30-NOV-09'
    GROUP BY EMP_JN_DT )
    ORDER BY 2
    

    4 回复  |  直到 15 年前
        1
  •  2
  •   David Aldridge    15 年前
    SELECT   Trunc(EMP_JN_DT,'MM') Emp_Jn_Mth,
             Count(*)
    FROM     EMP_REG
    WHERE    EMP_JN_DT between date '2009-01-01' AND date '2009-12-31'
    GROUP BY Trunc(EMP_JN_DT,'MM')
    ORDER BY 1;
    

    如果您在某个特定月份没有任何人加入,则不会返回任何行。为了克服这一点,你必须在所需年份的月份列表中加入上述内容。

        2
  •  1
  •   James Goodwin    15 年前
    SELECT to_date(EMP_JN_DT,'MON') "Month", EMP_NO "Employees"
    FROM EMP_REG
    WHERE EMP_JN_DT between date '2009-01-01' AND date '2009-12-31'
    GROUP by "Month"
    ORDER BY 1;
    
        3
  •  0
  •   kubal5003    15 年前

    http://www.techonthenet.com/oracle/functions/extract.php

    有一个函数返回月份。你需要做的就是把它分组

        4
  •  -1
  •   pinaki    9 年前

    1月份的员工人数可通过以下方式选择:

    SELECT EXTRACT(MONTH FROM HIREDATE) AS MONTH1, COUNT(*)
    FROM employee
    WHERE EXTRACT(MONTH FROM HIREDATE)=1
    GROUP BY EXTRACT(MONTH FROM HIREDATE)