Count date field value, and calculation : COUNT « Aggregate Functions « Oracle PL/SQL Tutorial






SQL>
SQL>
SQL> CREATE TABLE emp (
  2    emp_id               NUMBER,
  3    ename             VARCHAR2(40),
  4    hire_date        DATE DEFAULT sysdate,
  5    end_date DATE,
  6    rate     NUMBER(5,2),
  7    CONSTRAINT emp_pk
  8      PRIMARY KEY (emp_id)
  9  );

Table created.

SQL> INSERT INTO emp(emp_id, ename, hire_date,end_date, rate)VALUES (101, 'Mary', to_date('15-Nov-1961','dd-mon-yyyy'),null,169);

1 row created.

SQL> INSERT INTO emp(emp_id, ename, hire_date,end_date, rate)VALUES (102, 'Tom', to_date('16-Sep-1964','dd-mon-yyyy'),to_date('5-May-2004','dd-mon-yyyy'),135);

1 row created.

SQL> INSERT INTO emp(emp_id, ename, hire_date,end_date, rate)VALUES (104, 'Peter', to_date('29-Dec-1987','dd-mon-yyyy'),to_date('1-Apr-2004','dd-mon-yyyy'),99);

1 row created.

SQL> INSERT INTO emp(emp_id, ename, hire_date,end_date, rate)VALUES (105, 'Mike', to_date('15-Jun-2004','dd-mon-yyyy'),null,121);

1 row created.

SQL> INSERT INTO emp(emp_id, ename, hire_date,end_date, rate)VALUES (107, 'Less', to_date('2-Jan-2004','dd-mon-yyyy'),null,45);

1 row created.

SQL> INSERT INTO emp(emp_id, ename, hire_date,end_date, rate)VALUES (108, 'Park', to_date('1-Mar-1994','dd-mon-yyyy'),to_date('15-Nov-2004','dd-mon-yyyy'),220);

1 row created.

SQL> INSERT INTO emp(emp_id, ename, hire_date,end_date, rate)VALUES (110, 'Ink', to_date('4-Apr-2004','dd-mon-yyyy'),to_date('30-Sep-2004','dd-mon-yyyy'),84);

1 row created.

SQL> INSERT INTO emp(emp_id, ename, hire_date,end_date, rate)VALUES (111, 'Tike', to_date('23-Aug-1976','dd-mon-yyyy'),null,100);

1 row created.

SQL> INSERT INTO emp(emp_id, ename, hire_date,end_date, rate)VALUES (112, 'Inn', to_date('15-Nov-1961','dd-mon-yyyy'),to_date('4-Apr-2004','dd-mon-yyyy'),70);

1 row created.

SQL> INSERT INTO emp(emp_id, ename, hire_date,end_date, rate)VALUES (113, 'Kate', to_date('3-Mar-2004','dd-mon-yyyy'),to_date('31-Oct-2004','dd-mon-yyyy'),300);

1 row created.

SQL>
SQL>
SQL> SET ECHO ON
SQL> SELECT COUNT(SUBSTR(TO_CHAR(hire_date,'YYYY'),1,3) || '0') "decade",
  2         COUNT(hire_date) "hired",
  3         COUNT(hire_date) - COUNT(end_date) "remaining",
  4         MIN(hire_date) "first hire",
  5         MAX(hire_date) "last hire"
  6  FROM emp
  7  GROUP BY SUBSTR(TO_CHAR(hire_date,'YYYY'),1,3) || '0';
         3          3          1
15-NOV-61 16-SEP-64

         1          1          1
23-AUG-76 23-AUG-76

         1          1          0
29-DEC-87 29-DEC-87

         1          1          0
01-MAR-94 01-MAR-94

         4          4          2
02-JAN-04 15-JUN-04


5 rows selected.

SQL>
SQL>
SQL>
SQL> drop table emp;

Table dropped.








12.3.COUNT
12.3.1.COUNT(x) gets the number of rows returned by a query.
12.3.2.Passes ROWID to COUNT() and gets the number of rows
12.3.3.COUNT() with null
12.3.4.Using an aggregate with the GROUP BY clause to count by city
12.3.5.COUNT(1) from a table
12.3.6.Count column with table alias
12.3.7.Count distinct column value
12.3.8.Compare the difference between count(*) and count(distinct course)
12.3.9.Count employees in the same department
12.3.10.JOIN with AND and aggregate function
12.3.11.count(*) - count(onhand)
12.3.12.count(*) vs count(column name)
12.3.13.Count all employees by even/odd employee id
12.3.14.Count date field value, and calculation