Exercices MySQL Avec Correction – Partie 5
Dans cet article vous trouverez la suite de la quatrième partie, consultez nos exercices sur des requêtes MYSQL simple, avancée et enfin complexe. Ces questions sont basées sur les deux tables suivants, table employee et table reward.
Table employee
+-------------+------------+-----------+----------+--------------+-------------+ | Employee_id | First_name | Last_name | Salary | Joining_date | Departement | +-------------+------------+-----------+----------+--------------+-------------+ | 1 | Bob | Kinto | 1000000 | 2019-01-20 | Finance | | 2 | Jerry | Kansxo | 6000000 | 2019-01-15 | IT | | 3 | Philip | Jose | 8900000 | 2019-02-05 | Banking | | 4 | John | Abraham | 2000000 | 2019-02-25 | Insurance | | 5 | Michael | Mathew | 2200000 | 2019-02-28 | Finance | | 6 | Alex | chreketo | 4000000 | 2019-05-10 | IT | | 7 | Yohan | Soso | 1230000 | 2019-06-20 | Banking | +-------------+------------+-----------+----------+--------------+-------------+
Table reward (Prime)
+-----------------+-------------+--------+ | Employee_ref_id | date_reward | amount | +-----------------+-------------+--------+ | 1 | 2019-05-11 | 1000 | | 2 | 2019-02-15 | 5000 | | 3 | 2019-04-22 | 2000 | | 1 | 2019-06-20 | 8000 | +-----------------+-------------+--------+
Questions
1. Récupérez le département et le salaire total, regroupé par département, et trié par le salaire total par ordre décroissant.
2. Récupérez le département, le nombre d’employés dans ce département et le salaire total regroupé par département, et trié par le salaire total par ordre décroissant.
3. Récupérez le salaire moyen par département, et par ordre croissant du salaire.
4. Récupérez le salaire maximum par département, et par ordre croissant du salaire.
5. Récupérez le salaire minimum par département, et par ordre croissant du salaire.
6. Récupérez le nombre d’employés regroupé par l’année et le mois d’adhésion.
7. Récupérez le département et le salaire total regroupé par le département, où le salaire total supérieur à 1000000, et trié par ordre décroissant du salaire total.
8. Récupérez tous les détails d’un employé si ce dernier existe dans la table Reward? Ou autrement dit, trouver les employées ayant des primes.
9. Comment récupérer des données communes dans deux résultats de requête?
10. Récupérez les identifiants d’employés qui n’ont pas reçu de récompense sans utiliser de sous-requêtes?
Je pense que la question 8 est pour trouver les employées ayant des primes. Donc, la réponse est :
SELECT E.* FROM Employee AS E
WHERE EXISTS(
SELECT R.Employee_ref_id from reward AS R where E.Employee_id = R.Employee_ref_id
);
+————-+————+———–+———+————–+————-+
| Employee_id | First_name | Last_name | Salary | Joining_date | Departement |
+————-+————+———–+———+————–+————-+
| 1 | Bob | Kinto | 1000000 | 2019-01-20 | Finance |
| 2 | Jerry | Kansxo | 6000000 | 2019-01-15 | IT |
| 3 | Philip | Jose | 8900000 | 2019-02-05 | Banking |
+————-+————+———–+———+————–+————-+
Merci pour cette remarque, c’est corrigé 🙂