Mega Code Archive

 
Categories / MySQL / Aggregate Functions
 

COUNT([DISTINCT] {expression })

mysql> mysql> CREATE TABLE Classes     -> (     ->     ClassID SMALLINT NOT NULL PRIMARY KEY,     ->     Dept CHAR(4) NOT NULL,     ->     Level ENUM('Upper', 'Lower') NOT NULL,     ->     TotalStudents TINYINT UNSIGNED NOT NULL     -> ); Query OK, 0 rows affected (0.00 sec) mysql> INSERT INTO Classes VALUES     -> (1001, 'ANTH', 'Upper', 25),     -> (1002, 'ANTH', 'Upper', 25),     -> (1003, 'MATH', 'Upper', 18),     -> (1004, 'ANTH', 'Lower', 19),     -> (1005, 'ENGL', 'Upper', 28),     -> (1006, 'MATH', 'Lower', 23),     -> (1007, 'ENGL', 'Upper', 25),     -> (1008, 'MATH', 'Lower', 29),     -> (1009, 'ANTH', 'Upper', 25),     -> (1010, 'ANTH', 'Lower', 30),     -> (1011, 'ENGL', 'Lower', 26),     -> (1012, 'MATH', 'Lower', 22),     -> (1013, 'ANTH', 'Upper', 27),     -> (1014, 'ANTH', 'Upper', 21),     -> (1015, 'ENGL', 'Lower', 25),     -> (1016, 'ENGL', 'Upper', 32); Query OK, 16 rows affected (0.00 sec) Records: 16  Duplicates: 0  Warnings: 0 mysql> mysql> SELECT Dept, Level, COUNT(*) AS NumberClasses     -> FROM Classes     -> GROUP BY Dept, Level WITH ROLLUP; +------+-------+---------------+ | Dept | Level | NumberClasses | +------+-------+---------------+ | ANTH | Upper |             5 | | ANTH | Lower |             2 | | ANTH | NULL  |             7 | | ENGL | Upper |             3 | | ENGL | Lower |             2 | | ENGL | NULL  |             5 | | MATH | Upper |             1 | | MATH | Lower |             3 | | MATH | NULL  |             4 | | NULL | NULL  |            16 | +------+-------+---------------+ 10 rows in set (0.00 sec) mysql> mysql> drop table Classes; Query OK, 0 rows affected (0.00 sec)