Compare the difference between count(*) and count(distinct course) : COUNT « Aggregate Functions « Oracle PL/SQL Tutorial






SQL>
SQL>
SQL> create table course_schedule
  2  ( course     VARCHAR2(6)
  3  , begindate  DATE
  4  , trainer    NUMBER(4)
  5  , location   VARCHAR2(20)) ;

Table created.

SQL>
SQL>
SQL> insert into course_schedule values ('SQL',date '1999-04-12',1,'VANCOUVER' );

1 row created.

SQL> insert into course_schedule values ('OAU',date '1999-08-10',2,'CHICAGO');

1 row created.

SQL> insert into course_schedule values ('SQL',date '1999-10-04',3,'SEATTLE');

1 row created.

SQL> insert into course_schedule values ('SQL',date '1999-12-13',4,'DALLAS' );

1 row created.

SQL> insert into course_schedule values ('JAV',date '1999-12-13',5,'SEATTLE');

1 row created.

SQL> insert into course_schedule values ('XML',date '2000-02-03',6,'VANCOUVER' );

1 row created.

SQL> insert into course_schedule values ('JAV',date '2000-02-01',7,'DALLAS' );

1 row created.

SQL> insert into course_schedule values ('PLS',date '2000-09-11',8,'VANCOUVER' );

1 row created.

SQL> insert into course_schedule values ('XML',date '2000-09-18',NULL,'SEATTLE');

1 row created.

SQL> insert into course_schedule values ('OAU',date '2000-09-27',9,'DALLAS' );

1 row created.

SQL> insert into course_schedule values ('ERM',date '2001-01-15',10, NULL    );

1 row created.

SQL> insert into course_schedule values ('PRO',date '2001-02-19',NULL,'VANCOUVER' );

1 row created.

SQL> insert into course_schedule values ('RSD',date '2001-02-24',8,'CHICAGO');

1 row created.

SQL>
SQL>
SQL> select trainer
  2  ,      count(distinct course)
  3  ,      count(*)
  4  from   course_schedule
  5  group  by trainer;

   TRAINER COUNT(DISTINCTCOURSE)   COUNT(*)
---------- --------------------- ----------
         1                     1          1
         2                     1          1
         3                     1          1
         4                     1          1
         5                     1          1
         6                     1          1
         7                     1          1
         8                     2          2
         9                     1          1
        10                     1          1
                               2          2

11 rows selected.

SQL>
SQL> drop table course_schedule;

Table dropped.

SQL>
SQL>








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