
Mekki MOURADI
Data Analyst
Rabat, Maroc
À Propos
Data Analyst Junior avec une solide expérience en marketing numérique et des compétences approfondies dans l’utilisation de Microsoft Excel, SQL, Tableau Software et Python.
Retrieve Data with Multiple-Table SQL Queries


Liens
Compétences & Outils
Description du projet
- Jonction de tableaux avec les clauses
- WHERE
- INNER JOIN
- LEFT JOIN
- Comprendre et déterminer les clauses à utiliser selon le degré de flexibilité nécessaire
Objectifs de l'analyse
- Comprendre l’utilité des différentes clauses “WHERE” et “JOIN”
- Déterminer la différence entre ces clauses et lesquelles utiliser pour les besoins de l’analyse
Étapes de l'analyse
Explorer la database


- Joining Two Tables with WHERE
- Joindre les tableaux nécessaires pour identifier le nom et prénom des différents employés par nom de département.
SELECT
deptname,
emplastname,
empfirstname
FROM
employee, department
WHERE
deptid = empdeptid
ORDER BY
deptname

deptname | emplastname | empfirstname |
---|---|---|
Accounting | Vang | Toua |
Accounting | Geist | Tab |
Executive Staff | Ahmed | Akeem |
Executive Staff | Curry | Pat |
Finance | Streja | Renn |
Finance | Kiriakis | Mila |
Finance | Brown | Dumaundre |
Human Resources | Patel | Raj |
Human Resources | Brown | Lillian |
Information Technology | Jones | Chinnisha |
Information Technology | Dziengle | Sandy |
Information Technology | Vang | Moua |
Information Technology | Seversen | Paul |
Information Technology | Billings | Willa |
Information Technology | Trask | Hendrix |
Information Technology | Valero | Sal |
Information Technology | Pingle | Roger |
Legal | Avraham | David |
Legal | VanGomple | Dale |
Manufacturing | Lopez | Martin |
Manufacturing | Gorski | Dale |
Manufacturing | Cooley | Priya |
Manufacturing | Parsons | Paul |
Manufacturing | Chen | Dawn |
Marketing | Aspen | Perry |
Marketing | Curry | Vaughn |
Marketing | Larssen | Tor |
Research and Devlopment | Chin | Lee |
Research and Devlopment | Vargas | Fran |
Research and Devlopment | Rustici | Carmine |
Sales | Lopez | Andres |
Sales | Blackdeer | Anita |
Sales | Caspian | Parker |
Sales | Timmons | Betty |
Sales | Vartanian | Mary |
- Joining Three or more Tables
- Scénario : Afficher une liste des noms des employés dans chaque département, et les classer par nom du bâtiment, nom du département, puis enfin par nom de famille.
SELECT
bldname,
deptname,
emplastname,
empfirstname
FROM
building, department, employee
WHERE
deptbuilding = bldid AND empdeptid = deptid
ORDER BY
bldname, deptname, emplastname

bldname | deptname | emplastname | empfirstname |
---|---|---|---|
Allen Building | Manufacturing | Chen | Dawn |
Allen Building | Manufacturing | Cooley | Priya |
Allen Building | Manufacturing | Gorski | Dale |
Allen Building | Manufacturing | Lopez | Martin |
Allen Building | Manufacturing | Parsons | Paul |
Allen Building | Research and Devlopment | Chin | Lee |
Allen Building | Research and Devlopment | Rustici | Carmine |
Allen Building | Research and Devlopment | Vargas | Fran |
Barrow Building | Accounting | Geist | Tab |
Barrow Building | Accounting | Vang | Toua |
Barrow Building | Finance | Brown | Dumaundre |
Barrow Building | Finance | Kiriakis | Mila |
Barrow Building | Finance | Streja | Renn |
Barrow Building | Marketing | Aspen | Perry |
Barrow Building | Marketing | Curry | Vaughn |
Barrow Building | Marketing | Larssen | Tor |
Barrow Building | Sales | Blackdeer | Anita |
Barrow Building | Sales | Caspian | Parker |
Barrow Building | Sales | Lopez | Andres |
Barrow Building | Sales | Timmons | Betty |
Barrow Building | Sales | Vartanian | Mary |
Curryco Campus | Executive Staff | Ahmed | Akeem |
Curryco Campus | Executive Staff | Curry | Pat |
Curryco Campus | Human Resources | Brown | Lillian |
Curryco Campus | Human Resources | Patel | Raj |
Curryco Campus | Legal | Avraham | David |
Curryco Campus | Legal | VanGomple | Dale |
Data Center | Information Technology | Billings | Willa |
Data Center | Information Technology | Dziengle | Sandy |
Data Center | Information Technology | Jones | Chinnisha |
Data Center | Information Technology | Pingle | Roger |
Data Center | Information Technology | Seversen | Paul |
Data Center | Information Technology | Trask | Hendrix |
Data Center | Information Technology | Valero | Sal |
Data Center | Information Technology | Vang | Moua |
- Scénario : afficher la description du projet relative à chaque responsable de projet, le nom du département, et enfin le nom du bâtiment.
SELECT
projdesc,
emplastname ||' '|| empfirstname AS projectmanager,
bldname,
deptname
FROM
project, building, department, employee
WHERE
deptbuilding = bldid AND empdeptid = deptid AND projmanager = empid
ORDER BY
projdesc

projdesc | projectmanager | bldname | deptname |
---|---|---|---|
Allen Building Remodel | Gorski Dale | Allen Building | Manufacturing |
Benefits Software Update | Patel Raj | Curryco Campus | Human Resources |
Executive Retreat 2021 | Ahmed Akeem | Curryco Campus | Executive Staff |
Investigate and Purchase 3D Printer | Aspen Perry | Barrow Building | Marketing |
- Adding Selection into WHERE clause
- Scénario : les responsables de projets prévoient une réunion la semaine d'après. Afin de les contacter, l'assistante administrative a besoin d'une liste des projets, les noms et extensions téléphoniques de chaque responsable de projet. Néanmoins, seuls les projets budgétisés à plus de 100k$ seront conviés.
SELECT
projdesc,
projbudget,
emplastname ||' '|| empfirstname AS projectmanager,
empext
FROM
project,
employee
WHERE
projmanager = empid AND projbudget > 100000
ORDER BY
projbudget DESC

projdesc | projbudget | projectmanager | empext |
---|---|---|---|
Allen Building Remodel | 750000 | Gorski Dale | 344 |
Benefits Software Update | 155000 | Patel Raj | 122 |
- Scénario : La diréction des ressources humaines vous demande de fournir une liste des employés comprenant le nom complet de l'employé, la date de recrutement, le salaire ainsi que le département, et ce pour tous les employés dont le salaire est inférieur à 90k$.
La liste doit être classée par nom de département, puis par salaire au sein de chaque département.
SELECT
deptname,
emplastname ||' '|| empfirstname AS employee,
emphiredate,
empsalary
FROM
department, employee
WHERE
empdeptid = deptid AND empsalary < 90000
ORDER BY
deptname, empsalary

deptname | employee | emphiredate | empsalary |
---|---|---|---|
Accounting | Geist Tab | 2019-05-22 | 44500 |
Executive Staff | Ahmed Akeem | 2018-04-15 | 86500 |
Finance | Brown Dumaundre | 2017-05-01 | 88000 |
Finance | Kiriakis Mila | 2019-08-20 | 59900 |
Information Technology | Dziengle Sandy | 2014-12-15 | 85000 |
Information Technology | Pingle Roger | 2016-06-19 | 77000 |
Information Technology | Jones Chinnisha | 2016-06-18 | 77000 |
Information Technology | Seversen Paul | 2015-12-12 | 75600 |
Information Technology | Vang Moua | 2015-06-07 | 75000 |
Information Technology | Trask Hendrix | 2015-06-07 | 75000 |
Legal | VanGomple Dale | 2020-01-22 | 23900 |
Manufacturing | Chen Dawn | 2014-12-15 | 89500 |
Manufacturing | Lopez Martin | 2017-10-25 | 65000 |
Manufacturing | Cooley Priya | 2016-06-16 | 63400 |
Manufacturing | Parsons Paul | 2018-11-11 | 44000 |
Marketing | Aspen Perry | 2020-12-01 | 63400 |
Marketing | Curry Vaughn | 2020-02-13 | 22000 |
Research and Devlopment | Chin Lee | 2017-05-01 | 69500 |
Research and Devlopment | Rustici Carmine | 2018-04-22 | 55000 |
Sales | Timmons Betty | 2015-12-12 | 77900 |
Sales | Vartanian Mary | 2000-04-29 | 52300 |
- From WHERE to INNER JOIN
- Scénario : Ajouter à la sélection précédente le nom du bâtiment.
WHERE clause
SELECT
deptname,
emplastname,
empfirstname
FROM
department, employee
WHERE
empdeptid = deptid
ORDER BY
deptname, emplastname

deptname | emplastname | empfirstname |
---|---|---|
Accounting | Geist | Tab |
Accounting | Vang | Toua |
Executive Staff | Ahmed | Akeem |
Executive Staff | Curry | Pat |
Finance | Brown | Dumaundre |
Finance | Kiriakis | Mila |
Finance | Streja | Renn |
Human Resources | Brown | Lillian |
Human Resources | Patel | Raj |
Information Technology | Billings | Willa |
Information Technology | Dziengle | Sandy |
Information Technology | Jones | Chinnisha |
Information Technology | Pingle | Roger |
Information Technology | Seversen | Paul |
Information Technology | Trask | Hendrix |
Information Technology | Valero | Sal |
Information Technology | Vang | Moua |
Legal | Avraham | David |
Legal | VanGomple | Dale |
Manufacturing | Chen | Dawn |
Manufacturing | Cooley | Priya |
Manufacturing | Gorski | Dale |
Manufacturing | Lopez | Martin |
Manufacturing | Parsons | Paul |
Marketing | Aspen | Perry |
Marketing | Curry | Vaughn |
Marketing | Larssen | Tor |
Research and Devlopment | Chin | Lee |
Research and Devlopment | Rustici | Carmine |
Research and Devlopment | Vargas | Fran |
Sales | Blackdeer | Anita |
Sales | Caspian | Parker |
Sales | Lopez | Andres |
Sales | Timmons | Betty |
Sales | Vartanian | Mary |
INNER JOIN clause
SELECT
deptname,
emplastname,
empfirstname
FROM
department
INNER JOIN
employee
ON
empdeptid = deptid
ORDER BY
deptname, emplastname

deptname | emplastname | empfirstname |
---|---|---|
Accounting | Geist | Tab |
Accounting | Vang | Toua |
Executive Staff | Ahmed | Akeem |
Executive Staff | Curry | Pat |
Finance | Brown | Dumaundre |
Finance | Kiriakis | Mila |
Finance | Streja | Renn |
Human Resources | Brown | Lillian |
Human Resources | Patel | Raj |
Information Technology | Billings | Willa |
Information Technology | Dziengle | Sandy |
Information Technology | Jones | Chinnisha |
Information Technology | Pingle | Roger |
Information Technology | Seversen | Paul |
Information Technology | Trask | Hendrix |
Information Technology | Valero | Sal |
Information Technology | Vang | Moua |
Legal | Avraham | David |
Legal | VanGomple | Dale |
Manufacturing | Chen | Dawn |
Manufacturing | Cooley | Priya |
Manufacturing | Gorski | Dale |
Manufacturing | Lopez | Martin |
Manufacturing | Parsons | Paul |
Marketing | Aspen | Perry |
Marketing | Curry | Vaughn |
Marketing | Larssen | Tor |
Research and Devlopment | Chin | Lee |
Research and Devlopment | Rustici | Carmine |
Research and Devlopment | Vargas | Fran |
Sales | Blackdeer | Anita |
Sales | Caspian | Parker |
Sales | Lopez | Andres |
Sales | Timmons | Betty |
Sales | Vartanian | Mary |
- Scénario : Afficher les différents employés et les classer par département, puis par nom.
SELECT
deptname,
emplastname ||' '|| empfirstname AS employee,
emphiredate,
empsalary
FROM
department, employee
WHERE
empdeptid = deptid AND empsalary < 90000
ORDER BY
deptname, empsalary

deptname | employee | emphiredate | empsalary |
---|---|---|---|
Accounting | Geist Tab | 2019-05-22 | 44500 |
Executive Staff | Ahmed Akeem | 2018-04-15 | 86500 |
Finance | Kiriakis Mila | 2019-08-20 | 59900 |
Finance | Brown Dumaundre | 2017-05-01 | 88000 |
Information Technology | Trask Hendrix | 2015-06-07 | 75000 |
Information Technology | Vang Moua | 2015-06-07 | 75000 |
Information Technology | Seversen Paul | 2015-12-12 | 75600 |
Information Technology | Jones Chinnisha | 2016-06-18 | 77000 |
Information Technology | Pingle Roger | 2016-06-19 | 77000 |
Information Technology | Dziengle Sandy | 2014-12-15 | 85000 |
Legal | VanGomple Dale | 2020-01-22 | 23900 |
Manufacturing | Parsons Paul | 2018-11-11 | 44000 |
Manufacturing | Cooley Priya | 2016-06-16 | 63400 |
Manufacturing | Lopez Martin | 2017-10-25 | 65000 |
Manufacturing | Chen Dawn | 2014-12-15 | 89500 |
Marketing | Curry Vaughn | 2020-02-13 | 22000 |
Marketing | Aspen Perry | 2020-12-01 | 63400 |
Research and Devlopment | Rustici Carmine | 2018-04-22 | 55000 |
Research and Devlopment | Chin Lee | 2017-05-01 | 69500 |
Sales | Vartanian Mary | 2000-04-29 | 52300 |
Sales | Timmons Betty | 2015-12-12 | 77900 |
- Using LEFT JOIN
- Scénario : Afficher tous les projets, même ceux qui ne sont affectés à aucun responsable de projets.
SELECT
projdesc,
emplastname
FROM
project
LEFT JOIN
employee
ON
empid = projmanager
ORDER BY
projdesc;

projdesc | emplastname |
---|---|
Allen Building Remodel | Gorski |
Barrow Building Remodel | NULL |
Benefits Software Update | Patel |
Executive Retreat 2021 | Ahmed |
Executive Retreat 2022 | NULL |
Investigate and Purchase 3D Printer | Aspen |
Conclusion de l'analyse
- “WHERE” et “JOIN” peuvent être utilisés interchangeablement.
- Le seul cas de figure où un “LEFT JOIN” ou un “OUTTER JOIN” serait plus intéressant serait si l’on avait besoin de plus de flexibilité dans les valeurs renvoyées qui ne trouvent pas de match.