Subquery with having clause
mysql>
mysql>
mysql> CREATE TABLE TEAMS
-> (TEAMNO INTEGER NOT NULL,
-> EmployeeNO INTEGER NOT NULL,
-> DIVISION CHAR(6) NOT NULL,
-> PRIMARY KEY (TEAMNO) );
Query OK, 0 rows affected (0.00 sec)
mysql>
mysql>
mysql> INSERT INTO TEAMS VALUES (1, 6, 'first');
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO TEAMS VALUES (2, 27, 'second');
Query OK, 1 row affected (0.00 sec)
mysql>
mysql> CREATE TABLE MATCHES
-> (MATCHNO INTEGER NOT NULL,
-> TEAMNO INTEGER NOT NULL,
-> EmployeeNO INTEGER NOT NULL,
-> WON SMALLINT NOT NULL,
-> LOST SMALLINT NOT NULL,
-> PRIMARY KEY (MATCHNO) );
Query OK, 0 rows affected (0.00 sec)
mysql>
mysql> INSERT INTO MATCHES VALUES ( 1, 1, 6, 3, 1);
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO MATCHES VALUES ( 2, 1, 6, 2, 3);
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO MATCHES VALUES ( 3, 1, 6, 3, 0);
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO MATCHES VALUES ( 4, 1, 44, 3, 2);
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO MATCHES VALUES ( 5, 1, 83, 0, 3);
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO MATCHES VALUES ( 6, 1, 2, 1, 3);
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO MATCHES VALUES ( 7, 1, 57, 3, 0);
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO MATCHES VALUES ( 8, 1, 8, 0, 3);
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO MATCHES VALUES ( 9, 2, 27, 3, 2);
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO MATCHES VALUES (10, 2, 104, 3, 2);
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO MATCHES VALUES (11, 2, 112, 2, 3);
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO MATCHES VALUES (12, 2, 112, 1, 3);
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO MATCHES VALUES (13, 2, 8, 0, 3);
Query OK, 1 row affected (0.00 sec)
mysql>
mysql> SELECT TEAMNO, DIVISION
-> FROM TEAMS
-> WHERE TEAMNO IN
-> (SELECT TEAMNO
-> FROM MATCHES
-> GROUP BY TEAMNO
-> HAVING COUNT(DISTINCT EmployeeNO) > 4);
+--------+----------+
| TEAMNO | DIVISION |
+--------+----------+
| 1 | first |
+--------+----------+
1 row in set (0.00 sec)
mysql>
mysql> drop table teams;
Query OK, 0 rows affected (0.00 sec)
mysql> drop table matches;
Query OK, 0 rows affected (0.00 sec)
Related examples in the same category