Having clause with subquery
mysql>
mysql>
mysql> CREATE TABLE PENALTIES
-> (PAYMENTNO INTEGER NOT NULL,
-> EmployeeNO INTEGER NOT NULL,
-> PAYMENT_DATE DATE NOT NULL,
-> AMOUNT DECIMAL(7,2) NOT NULL,
-> PRIMARY KEY (PAYMENTNO) );
Query OK, 0 rows affected (0.00 sec)
mysql>
mysql> INSERT INTO PENALTIES VALUES (1, 6, '1980-12-08',100);
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO PENALTIES VALUES (2, 44, '1981-05-05', 75);
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO PENALTIES VALUES (3, 27, '1983-09-10',100);
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO PENALTIES VALUES (4,104, '1984-12-08', 50);
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO PENALTIES VALUES (5, 44, '1980-12-08', 25);
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO PENALTIES VALUES (6, 8, '1980-12-08', 25);
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO PENALTIES VALUES (7, 44, '1982-12-30', 30);
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO PENALTIES VALUES (8, 27, '1984-11-12', 75);
Query OK, 1 row affected (0.00 sec)
mysql>
mysql> SELECT EmployeeNO, SUM(AMOUNT)
-> FROM PENALTIES
-> GROUP BY EmployeeNO
-> HAVING SUM(AMOUNT) >= ALL
-> (SELECT SUM(AMOUNT)
-> FROM PENALTIES
-> GROUP BY EmployeeNO);
+------------+-------------+
| EmployeeNO | SUM(AMOUNT) |
+------------+-------------+
| 27 | 175.00 |
+------------+-------------+
1 row in set (0.00 sec)
mysql>
mysql>
mysql> drop table penalties;
Query OK, 0 rows affected (0.00 sec)
Related examples in the same category