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 

  1. Joining Two Tables with WHERE
  1. 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
				
			
deptnameemplastnameempfirstname
AccountingVangToua
AccountingGeistTab
Executive StaffAhmedAkeem
Executive StaffCurryPat
FinanceStrejaRenn
FinanceKiriakisMila
FinanceBrownDumaundre
Human ResourcesPatelRaj
Human ResourcesBrownLillian
Information TechnologyJonesChinnisha
Information TechnologyDziengleSandy
Information TechnologyVangMoua
Information TechnologySeversenPaul
Information TechnologyBillingsWilla
Information TechnologyTraskHendrix
Information TechnologyValeroSal
Information TechnologyPingleRoger
LegalAvrahamDavid
LegalVanGompleDale
ManufacturingLopezMartin
ManufacturingGorskiDale
ManufacturingCooleyPriya
ManufacturingParsonsPaul
ManufacturingChenDawn
MarketingAspenPerry
MarketingCurryVaughn
MarketingLarssenTor
Research and DevlopmentChinLee
Research and DevlopmentVargasFran
Research and DevlopmentRusticiCarmine
SalesLopezAndres
SalesBlackdeerAnita
SalesCaspianParker
SalesTimmonsBetty
SalesVartanianMary
  1. Joining Three or more Tables
  1. 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
				
			
bldnamedeptnameemplastnameempfirstname
Allen BuildingManufacturingChenDawn
Allen BuildingManufacturingCooleyPriya
Allen BuildingManufacturingGorskiDale
Allen BuildingManufacturingLopezMartin
Allen BuildingManufacturingParsonsPaul
Allen BuildingResearch and DevlopmentChinLee
Allen BuildingResearch and DevlopmentRusticiCarmine
Allen BuildingResearch and DevlopmentVargasFran
Barrow BuildingAccountingGeistTab
Barrow BuildingAccountingVangToua
Barrow BuildingFinanceBrownDumaundre
Barrow BuildingFinanceKiriakisMila
Barrow BuildingFinanceStrejaRenn
Barrow BuildingMarketingAspenPerry
Barrow BuildingMarketingCurryVaughn
Barrow BuildingMarketingLarssenTor
Barrow BuildingSalesBlackdeerAnita
Barrow BuildingSalesCaspianParker
Barrow BuildingSalesLopezAndres
Barrow BuildingSalesTimmonsBetty
Barrow BuildingSalesVartanianMary
Curryco CampusExecutive StaffAhmedAkeem
Curryco CampusExecutive StaffCurryPat
Curryco CampusHuman ResourcesBrownLillian
Curryco CampusHuman ResourcesPatelRaj
Curryco CampusLegalAvrahamDavid
Curryco CampusLegalVanGompleDale
Data CenterInformation TechnologyBillingsWilla
Data CenterInformation TechnologyDziengleSandy
Data CenterInformation TechnologyJonesChinnisha
Data CenterInformation TechnologyPingleRoger
Data CenterInformation TechnologySeversenPaul
Data CenterInformation TechnologyTraskHendrix
Data CenterInformation TechnologyValeroSal
Data CenterInformation TechnologyVangMoua
  1. 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
				
			
projdescprojectmanagerbldnamedeptname
Allen Building RemodelGorski DaleAllen BuildingManufacturing
Benefits Software UpdatePatel RajCurryco CampusHuman Resources
Executive Retreat 2021Ahmed AkeemCurryco CampusExecutive Staff
Investigate and Purchase 3D PrinterAspen PerryBarrow BuildingMarketing
  1. Adding Selection into WHERE clause
  1. 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
				
			
projdescprojbudgetprojectmanagerempext
Allen Building Remodel750000Gorski Dale344
Benefits Software Update155000Patel Raj122
  1. 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
				
			
deptnameemployeeemphiredateempsalary
AccountingGeist Tab2019-05-2244500
Executive StaffAhmed Akeem2018-04-1586500
FinanceBrown Dumaundre2017-05-0188000
FinanceKiriakis Mila2019-08-2059900
Information TechnologyDziengle Sandy2014-12-1585000
Information TechnologyPingle Roger2016-06-1977000
Information TechnologyJones Chinnisha2016-06-1877000
Information TechnologySeversen Paul2015-12-1275600
Information TechnologyVang Moua2015-06-0775000
Information TechnologyTrask Hendrix2015-06-0775000
LegalVanGomple Dale2020-01-2223900
ManufacturingChen Dawn2014-12-1589500
ManufacturingLopez Martin2017-10-2565000
ManufacturingCooley Priya2016-06-1663400
ManufacturingParsons Paul2018-11-1144000
MarketingAspen Perry2020-12-0163400
MarketingCurry Vaughn2020-02-1322000
Research and DevlopmentChin Lee2017-05-0169500
Research and DevlopmentRustici Carmine2018-04-2255000
SalesTimmons Betty2015-12-1277900
SalesVartanian Mary2000-04-2952300
  1. From WHERE to INNER JOIN
  1. 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
				
			
deptnameemplastnameempfirstname
AccountingGeistTab
AccountingVangToua
Executive StaffAhmedAkeem
Executive StaffCurryPat
FinanceBrownDumaundre
FinanceKiriakisMila
FinanceStrejaRenn
Human ResourcesBrownLillian
Human ResourcesPatelRaj
Information TechnologyBillingsWilla
Information TechnologyDziengleSandy
Information TechnologyJonesChinnisha
Information TechnologyPingleRoger
Information TechnologySeversenPaul
Information TechnologyTraskHendrix
Information TechnologyValeroSal
Information TechnologyVangMoua
LegalAvrahamDavid
LegalVanGompleDale
ManufacturingChenDawn
ManufacturingCooleyPriya
ManufacturingGorskiDale
ManufacturingLopezMartin
ManufacturingParsonsPaul
MarketingAspenPerry
MarketingCurryVaughn
MarketingLarssenTor
Research and DevlopmentChinLee
Research and DevlopmentRusticiCarmine
Research and DevlopmentVargasFran
SalesBlackdeerAnita
SalesCaspianParker
SalesLopezAndres
SalesTimmonsBetty
SalesVartanianMary

INNER JOIN clause

				
					SELECT
	deptname,
	emplastname,
	empfirstname
FROM
	department
INNER JOIN
	employee
ON
	empdeptid = deptid
ORDER BY
	deptname, emplastname
				
			
deptnameemplastnameempfirstname
AccountingGeistTab
AccountingVangToua
Executive StaffAhmedAkeem
Executive StaffCurryPat
FinanceBrownDumaundre
FinanceKiriakisMila
FinanceStrejaRenn
Human ResourcesBrownLillian
Human ResourcesPatelRaj
Information TechnologyBillingsWilla
Information TechnologyDziengleSandy
Information TechnologyJonesChinnisha
Information TechnologyPingleRoger
Information TechnologySeversenPaul
Information TechnologyTraskHendrix
Information TechnologyValeroSal
Information TechnologyVangMoua
LegalAvrahamDavid
LegalVanGompleDale
ManufacturingChenDawn
ManufacturingCooleyPriya
ManufacturingGorskiDale
ManufacturingLopezMartin
ManufacturingParsonsPaul
MarketingAspenPerry
MarketingCurryVaughn
MarketingLarssenTor
Research and DevlopmentChinLee
Research and DevlopmentRusticiCarmine
Research and DevlopmentVargasFran
SalesBlackdeerAnita
SalesCaspianParker
SalesLopezAndres
SalesTimmonsBetty
SalesVartanianMary
  1. 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
				
			
deptnameemployeeemphiredateempsalary
AccountingGeist Tab2019-05-2244500
Executive StaffAhmed Akeem2018-04-1586500
FinanceKiriakis Mila2019-08-2059900
FinanceBrown Dumaundre2017-05-0188000
Information TechnologyTrask Hendrix2015-06-0775000
Information TechnologyVang Moua2015-06-0775000
Information TechnologySeversen Paul2015-12-1275600
Information TechnologyJones Chinnisha2016-06-1877000
Information TechnologyPingle Roger2016-06-1977000
Information TechnologyDziengle Sandy2014-12-1585000
LegalVanGomple Dale2020-01-2223900
ManufacturingParsons Paul2018-11-1144000
ManufacturingCooley Priya2016-06-1663400
ManufacturingLopez Martin2017-10-2565000
ManufacturingChen Dawn2014-12-1589500
MarketingCurry Vaughn2020-02-1322000
MarketingAspen Perry2020-12-0163400
Research and DevlopmentRustici Carmine2018-04-2255000
Research and DevlopmentChin Lee2017-05-0169500
SalesVartanian Mary2000-04-2952300
SalesTimmons Betty2015-12-1277900
  1. Using LEFT JOIN
  1. 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;
				
			
projdescemplastname
Allen Building RemodelGorski
Barrow Building RemodelNULL
Benefits Software UpdatePatel
Executive Retreat 2021Ahmed
Executive Retreat 2022NULL
Investigate and Purchase 3D PrinterAspen

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.