Vous êtes sur la page 1sur 44

Afin d'éviter la fuite de questions, ce rapport ne doit pas être partagé avec les candidats.

Anis MOKHTARI (mokhtarianis@hotmail.fr)

Campagne : Data Science, Data Science - Python, Data Science - ... - Senior

Domaine(s) : Apache Spark, Data Science, Data Science - Python, Data Science - R, Python 3, SQL Langage : Français Date : 14/12/2022

MEILLEUR QUE
RANG 1/1

66% DURÉE 0h56 / 1h31

des professionnels SCORE 1 390 / 2 720 (51%)

Apache Spark 180 / 220pts (82%) MEILLEUR QUE 62% des professionnels

Connaissance du langage 180 / 220pts

Data Science 120 / 160pts (75%) MEILLEUR QUE 95% des professionnels

Machine Learning 80 / 120pts

Statistics 40 / 40pts

1 / 44
Anis MOKHTARI (mokhtarianis@hotmail.fr)
Data Science - Python
0 / 500pts (0%) MEILLEUR QUE <1% des professionnels

Fiabilité 0 / 100pts

Résolution de problèmes 0 / 400pts

Data Science - R 0 / 300pts (0%) MEILLEUR QUE <1% des professionnels

Résolution de problèmes 0 / 300pts

Python 3 420 / 780pts (54%) MEILLEUR QUE 44% des professionnels

Connaissance du langage 320 / 340pts

Fiabilité 33 / 33pts

Modélisation 0 / 40pts

Résolution de problèmes 67 / 367pts

2 / 44
Anis MOKHTARI (mokhtarianis@hotmail.fr)
SQL 670 / 760pts (88%) MEILLEUR QUE 88% des professionnels

Connaissance du langage 270 / 320pts

Modélisation 100 / 140pts

Résolution de problèmes 300 / 300pts

Accéder au rapport détaillé

3 / 44
Anis MOKHTARI (mokhtarianis@hotmail.fr)
Question 1: [ML] NLP et Continuous Bag of Words
Data Science 01:00 / 01:00 20 / 20 pts

Le temps alloué à cette question s'est écoulé. La réponse du


candidat a été automatiquement récupérée à la fin du décompte.

Question
Comment s'appelle la méthode de prédiction de mot schématisée ci-dessous ?

4 / 44
Anis MOKHTARI (mokhtarianis@hotmail.fr)
Réponse

Skip Gram

Restricted Boltzman Machines

Continuous Bag of Words

Doc2vec

Résultat
Réponse correcte
Machine Learning +20pts

5 / 44
Anis MOKHTARI (mokhtarianis@hotmail.fr)
Question 2: [ML] Covariate shift
Data Science 01:00 / 01:00 0 / 40 pts

Le temps alloué à cette question s'est écoulé. La réponse du


candidat a été automatiquement récupérée à la fin du décompte.

Question
Des données sont générées avec le modèle P(y|x)P(x) , mais la distribution des variables explicatives
P(x) change entre l’apprentissage et le test. Comment appelle-t-on, en apprentissage artificiel, ce type
de changement dans la distribution des données ?

Réponse

Données déséquilibrées

Covariate shift

Prior probability shift

Biais de selection des variables

Transfer shift

Sur-apprentissage (over-fitting)

Résultat
Réponse incorrecte
Machine Learning +40pts

6 / 44
Anis MOKHTARI (mokhtarianis@hotmail.fr)
Question 3: [Statistics] Test statistique
Data Science 01:29 / 02:00 40 / 40 pts

Question
Une société de catalogues numériques a réalisé une étude sur la consommation de vin par habitants
dans différents pays. La consommation moyenne par an et par habitant en France est de 39,3 litres.

Vous observez que, dans votre région, la consommation de vin est bien plus importante. Vous
échantillonnez aléatoirement les données sur la consommation de vin dans votre région dans l'objectif
de valider votre observation.

Quels sont les hypothèses pour conduire votre test statistique unilatéral ?

H0 est l’hypothèse nulle exacte, Ha est l’hypothèse alternative.

Réponse

H0 : m > 39.3 ; Ha= : m < 39.3

H0 : m = 39.3 ; Ha= : m > 39.3

H0 : m < 39.3 ; Ha= : m = 39.3

H0 : m = 39.3 ; Ha= : m < 39.3

H0 : m < 39.3 ; Ha= : m > 39.3

H0 : m > 39.3 ; Ha= : m = 39.3

Résultat
Réponse correcte
Statistics +40pts

7 / 44
Anis MOKHTARI (mokhtarianis@hotmail.fr)
Question 4: [ML] GAN et distance Wasserstein
Data Science 00:21 / 00:45 60 / 60 pts

Question
Dans le cadre d'un modèle GAN, lorsque la distribution réelle et celle qui est générée par le générateur
sont trop différentes l’une de l’autre, le gradient dans les zones qui ne se chevauchent pas peut être
proche de zéro. Quelle distance pour la fonction loss permettra d'éviter ce problème ?

Réponse

Distance cosinus (cosine distance)

Distance Wasserstein

Distance Manhattan

Distance euclidienne

Résultat
Réponse correcte
Machine Learning +60pts

8 / 44
Anis MOKHTARI (mokhtarianis@hotmail.fr)
Question 5: [LinearAlgebra] Factorisation de matrice
Data Science - R 10:16 / 15:00 0 / 300 pts

Question
Vous avez à votre disposition trois matrices obtenues par décomposition en valeurs singulières.

Les colonnes de matrix1 sont les vecteurs singuliers à droite de la matrice initiale, les colonnes de
matrix2 sont les vecteurs singuliers à gauche de la matrice initiale, et le vecteur vector_sing
représente les valeurs singulières de la matrice initiale.

À partir de ces informations, vous devez reconstruire la matrice initiale.

Pour information le résultat attendu du jeu de test fourni est :

[,1] [,2]
[1,] 14.0000000 5
[2,] 0.9999999 9
[3,] 19.0000000 6

Réponse

1 # Use print(var) or cat("Messages...") to debug your solution.


2
3 reconstruct <- function(matrix1, matrix2, vector_sing) {
4 matrix2 %*% diag(vector_sing) %*% t(matrix1)
5
6 }

Voir le code playback

Résultat
Reconstruction de matrice approximative
Résolution de problèmes +150pts

Reconstruction de matrice valide


Résolution de problèmes +150pts

9 / 44
Anis MOKHTARI (mokhtarianis@hotmail.fr)
10 / 44
Anis MOKHTARI (mokhtarianis@hotmail.fr)
Question 6: [Preprocessing] Commandes de restauration rapide
Data Science - Python 09:05 / 15:00 0 / 300 pts

11 / 44
Anis MOKHTARI (mokhtarianis@hotmail.fr)
Question
Votre objectif est de compléter la fonction calculate_avg_spend qui transforme un dataframe (en
utilisant pandas) en un autre.

Entrées Le premier argument d'entrée ( orders_df ) est un objet DataFrame avec deux colonnes :
CustomerName et Order . Chaque ligne du DataFrame représente une commande particulière de fast-
food pour un client. Par exemple :

CustomerName Order
0 John Smith Cheeseburger
1 Lenny Lee Soda
2 Ava Williams Hamburger
3 Holly Jack Ice Cream
4 John Smith Taco
5 Holly Jack Hamburger
6 Ava Williams Fries
7 John Smith Salad

Le deuxième argument d'entrée ( items_df ), est un objet DataFrame avec deux colonnes : ItemName
et Price . Chaque ligne de l'objet DataFrame représente le prix d'un article particulier. Par exemple :

ItemName Price
0 Cheeseburger 9.99
1 Soda 1.35
2 Hamburger 8.79
3 Ice Cream 4.99
4 Taco 3.50
5 Fries 4.00
6 Salad 5.19

Sortie Votre fonction calculate_avg_spend doit retourner un objet DataFrame avec deux colonnes
(dans l'ordre suivant) : CustomerName et AvgSpend . Chaque ligne de la sortie DataFrame doit avoir
une valeur unique CustomerName , qui représente le nom du client. La colonne AvgSpend représente
le montant moyen en dollars que le client a dépensé pour des articles de restauration rapide. Votre
sortie DataFrame doit être triée par CustomerName , dans l'ordre alphabétique.

Pour l'exemple ci-dessus, la sortie DataFrame serait :

CustomerName AvgSpend
0 Ava Williams 6.395000
1 Holly Jack 6.890000
2 John Smith 6.226667
3 Lenny Lee 1.350000

N'hésitez pas à utiliser les bibliothèques NumPy et pandas dans votre code.

12 / 44
Anis MOKHTARI (mokhtarianis@hotmail.fr)
Réponse

1 # Python code below


2 # Use print("Debug messages...") to debug your solution.
3
4 import pandas as pd
5 def calculate_avg_spend(orders_df, items_df):
6 df = pd.merge(orders_df,items_df, left_on="Order",right_on='ItemName')
7 return df.groupby(["CustomerName"]).mean()

Voir le code playback

Résultat
Cas simple
Résolution de problèmes +150pts

Cas complexe
Fiabilité +50pts

Long data frame


Fiabilité +50pts

Court data frame


Résolution de problèmes +50pts

13 / 44
Anis MOKHTARI (mokhtarianis@hotmail.fr)
Question 7: [ML] Matrice de confusion
Data Science - Python 04:45 / 05:00 0 / 200 pts

Question
Corriger la ou les erreurs qui se sont glissées dans le calcul de la matrice de confusion.

On prend pour hypothèse que le dénominateur n'est jamais égal à zéro.

Réponse

1 # Python code below


2 # Use print("messages...") to debug your solution.
3
4 def compute_recall(m):
5 recall = m.true_positive / (m.true_positive + m.false_negative)
6 return recall
7
8 def compute_precision(m):
9 precision = m.true_positive / (m.true_positive + m.false_positive)
10 return precision
11
12 def compute_specificity(m):
13 specificity = m.true_negative / (m.true_negative + m.false_positive)
14 return specificity
15
16 def compute_accuracy(m):
17 accuracy = (m.true_positive + m.true_negative) / (m.false_positive + m.false_negative)+
(m.true_positive + m.true_negative)
18 return accuracy

Voir le code playback

Résultat
Erreurs corrigées
Résolution de problèmes +200pts

14 / 44
Anis MOKHTARI (mokhtarianis@hotmail.fr)
Question 8: Expression booléenne
Python 3 00:05 / 00:30 20 / 20 pts

Question
Comment applique-t-on un ET entre deux booléens en Python ?

Réponse

&&

and

||

Résultat
Réponse correcte
Connaissance du langage +20pts

15 / 44
Anis MOKHTARI (mokhtarianis@hotmail.fr)
Question 9: Déclaration de fonction
Python 3 00:04 / 00:30 20 / 20 pts

Question
Comment déclare-t-on une fonction name en Python ?

Réponse

def name():

name():

function name():

void name():

Il n'y a pas de fonctions en Python

Résultat
Réponse correcte
Connaissance du langage +20pts

16 / 44
Anis MOKHTARI (mokhtarianis@hotmail.fr)
Question 10: __eq__()
Python 3 01:00 / 01:00 40 / 40 pts

Le temps alloué à cette question s'est écoulé. La réponse du


candidat a été automatiquement récupérée à la fin du décompte.

Question
Comment sera utilisée la méthode __eq__ de l'objet suivant ?

class Point():
def __init__(self, x, y):
self.x = x
self.y = y
def __eq__(self, other):
return (self.x, self.y) == (other.x, other.y)

Réponse

point1.eq(point2)

Elle surcharge l'opérateur ==

Elle surcharge l'opérateur is

Ce code n'est pas valide

Résultat
Réponse correcte
Connaissance du langage +40pts

17 / 44
Anis MOKHTARI (mokhtarianis@hotmail.fr)
Question 11: Design POO
Python 3 00:41 / 01:20 0 / 40 pts

Question
Parmi ces deux propositions, laquelle préférez-vous ?

Proposition #1 :

class CapableDeVoler:
def voler(self): raise NotImplementedError

class Avion(CapableDeVoler):
def voler(self):
return 'vrrrrr'

class Oiseau(CapableDeVoler):
def voler(self):
return 'flapflap'

Proposition #2 :

class Avion:
def __init__():
self.son = 'vrrrrr'

def voler(self):
return self.son

class Oiseau(Avion):
def __init__(self):
self.son = 'flapflap'

Réponse

Proposition #1

Proposition #2

18 / 44
Anis MOKHTARI (mokhtarianis@hotmail.fr)
Résultat
Réponse incorrecte
Modélisation +40pts

19 / 44
Anis MOKHTARI (mokhtarianis@hotmail.fr)
Question 12: Import de module
Python 3 00:39 / 01:00 40 / 60 pts

Question
Dans le fichier module.py se trouve le code suivant :

def funcA():
pass
def __funcB__():
pass
def funcC():
pass
if __name__ == '__main__':
del funcC

Si vous exécutez la ligne import module dans un script séparé, quelles fonctions de module seront
utilisables ?

Cochez toutes les propositions valides.

Réponse

funcA()

__funcB__()

funcC()

Résultat
Réponse partiellement correcte
Connaissance du langage +40/60pts

20 / 44
Anis MOKHTARI (mokhtarianis@hotmail.fr)
Question 13: Héritage
Python 3 00:38 / 02:00 50 / 50 pts

Question
Complétez la réponse afin que la classe B hérite de A.

Réponse

1 # Python code below


2 # Use print("messages...") to debug your solution.
3
4 class A():
5 def test(self):
6 print("A")
7
8 def __init__(self):
9 self.test()
10
11
12 class B(A):
13 def __init__(self):
14 self.test()

Voir le code playback

Résultat
B hérite de A
Connaissance du langage +50pts

21 / 44
Anis MOKHTARI (mokhtarianis@hotmail.fr)
Question 14: Simple expression booléenne
Python 3 00:26 / 02:00 100 / 100 pts

Question
is_bool(i, j) devrait retourner True si un des arguments est égal à 1 ou si leur somme est égale à
1.

Par exemple :
is_bool(1, 5) retourne True
is_bool(2, 3) retourne False
is_bool(-3, 4) retourne True

Réponse

1 # Python code below


2 # Use print("messages...") to debug your solution.
3
4 def is_bool(i, j):
5 # Your code goes here
6 return i==1 or j==1 or i+j ==1

Voir le code playback

Résultat
Retourne True si i ou j est égal à 1, sinon False
Résolution de problèmes +67pts

Retourne True si i+j est égal à 1


Fiabilité +33pts

22 / 44
Anis MOKHTARI (mokhtarianis@hotmail.fr)
Question 15: Chaine en colonne
Python 3 02:48 / 12:00 0 / 300 pts

Question
La fonction reshape(n, line) retourne la chaine line sans les espaces et formatée en lignes de n
caractères maximum.

Exemples :

Appel Valeur retour

reshape(3, "abc de fghij")

abc
def
ghi
j

reshape(2, "1 23 456")

12
34
56

Écrivez le corps de la méthode reshape(n, line) .

Note : n'ajoutez pas de caractère \n final.

Réponse

1 # Python code below


2 # Use print("messages...") to debug your solution.
3
4 from itertools import zip_longest
5 def reshape(n, line):
6 line = line.replace(' ', ' ')
7 lines = (''.join(chars) for chars in zip_longest(*([iter(line)] *n), fillvalue=''))
8 return '\n'.join(lines)

Voir le code playback

23 / 44
Anis MOKHTARI (mokhtarianis@hotmail.fr)
Résultat
Tests simples
Résolution de problèmes +165pts

Tests espaces et lignes uniques


Résolution de problèmes +100pts

Tests caractère final


Résolution de problèmes +35pts

Question 16: Dates


Python 3 01:13 / 03:00 150 / 150 pts

Question
Implémentez la fonction nextWeek(d) qui renvoie une date 7 jours après la date donnée en
paramètre.

d est toujours un objet datetime.date défini.

Réponse

1 # Python code below


2 # Use print("messages...") to debug your solution.
3 from datetime import (
4 timedelta
5 )
6 def nextWeek(d):
7 return d+timedelta(weeks=1)

Voir le code playback

Résultat
La solution fonctionne avec la date courante
Connaissance du langage +150pts

24 / 44
Anis MOKHTARI (mokhtarianis@hotmail.fr)
Question 17: DataFrames structurés
Apache Spark 00:07 / 01:00 60 / 60 pts

Question
On considère le code suivant :

On souhaite structurer le DataFrame df . Quel sera le type du paramètre schema ?

Réponse

DataFrame

Dataset[Row]

StructType

StructField

Résultat
Réponse correcte
Connaissance du langage +60pts

25 / 44
Anis MOKHTARI (mokhtarianis@hotmail.fr)
Question 18: Bases de Spark - RDD
Apache Spark 00:11 / 00:30 20 / 20 pts

Question
Que veut dire l'acronyme "RDD" ?

Réponse

Readable Dataset Distribution

Resilient Distributed Dataset

Runnable Distributed Dataset

Resilient Distributed Datatable

Résultat
Réponse correcte
Connaissance du langage +20pts

26 / 44
Anis MOKHTARI (mokhtarianis@hotmail.fr)
Question 19: Architecture de Spark
Apache Spark 00:44 / 01:00 60 / 60 pts

Question
Quel est le composant manquant dans l'architecture suivante ?

Écrivez le nom du composant.

Réponse
Cluster manager

Résultat
Réponse correcte
Connaissance du langage +60pts

Réponse(s) correcte(s)
Cluster Manager
The Cluster Manager

27 / 44
Anis MOKHTARI (mokhtarianis@hotmail.fr)
Question 20: Checkpointing
Apache Spark 00:14 / 00:45 0 / 40 pts

Question
Qu'est ce que le Checkpointing dans Spark ?

Réponse

Le fait de sauvegarder une étape dans le lineage d'un RDD et recalculer à


partir de ce dernier

Avoir des meilleurs résultats de performances sur les RDD

Un processus manuel à exécuter lorsqu'on dépasse 5 transformations sur un


RDD

Une étape nécessaire pour la tolérance aux pannes

Résultat
Réponse incorrecte
Connaissance du langage +40pts

28 / 44
Anis MOKHTARI (mokhtarianis@hotmail.fr)
Question 21: Spark 1 & Spark 2
Apache Spark 00:41 / 01:00 40 / 40 pts

Question
Qu'est ce qui est vrai concernant la migration de Spark 1 à Spark 2 ?

Réponse

SparkSession est maintenant une abstraction pour le HiveContext et


SQLContext

Les RDDs ne sont plus utilisés

DataFrame est maintenant un alias de DataSet[Row]

Le Streaming sur données structurées est devenu disponible

Résultat
Réponse correcte
Connaissance du langage +40pts

29 / 44
Anis MOKHTARI (mokhtarianis@hotmail.fr)
Question 22: SQL - DROP
SQL 00:23 / 00:30 20 / 20 pts

Question
Quelle commande SQL est utilisée pour supprimer une table d'une base de données ?

Réponse

DELETE table

TRUNCATE table

DROP table

REMOVE table

Résultat
Réponse correcte
Connaissance du langage +20pts

30 / 44
Anis MOKHTARI (mokhtarianis@hotmail.fr)
Question 23: SQL - Clé primaire
SQL 00:49 / 01:00 40 / 40 pts

Question
Indiquer quelles propositions sont vraies pour une colonne déclarée en tant que clé primaire.

(plusieurs réponses possibles)

Réponse

Elle ne peut pas contenir de doublons

Elle peut contenir la valeur NULL

Elle ne peut pas être en plus une clé étrangère

Elle peut être déclarée avec un type "caractère" tel que "VARCHAR"

Résultat
Réponse correcte
Modélisation +40pts

31 / 44
Anis MOKHTARI (mokhtarianis@hotmail.fr)
Question 24: SQL - Index
SQL 00:33 / 01:20 40 / 40 pts

Question

Dans le schéma ci-dessus, quelle serait une bonne stratégie pour améliorer les performances des
requêtes se basant sur la colonne name de la table PRODUCT_CATEGORY ?

Réponse

Créer un index sur la colonne name

Déclarer que la colonne name ne peut pas contenir de doublons

Étendre la clé primaire pour inclure la colonne name en plus de la colonne


product_category_id

Créer une clé étrangère sur la colonne name

Changer la clé primaire de product_category_id vers name

32 / 44
Anis MOKHTARI (mokhtarianis@hotmail.fr)
Résultat
Réponse correcte
Modélisation +40pts

Question 25: SQL - Clé étrangère n°2


SQL 01:10 / 01:10 20 / 60 pts

Le temps alloué à cette question s'est écoulé. La réponse du


candidat a été automatiquement récupérée à la fin du décompte.

Question
Parmi les proposition suivantes concernant les clés étrangères, choisissez celles qui vous paraissent vrai.

(plusieurs réponses possibles)

Réponse

Une clé étrangère garantit l'intégrité référentielle entre deux tables

La valeur d'une clé étrangère peut être NULL

La colonne associée à une clé étrangère ne peut être que d'un type
numérique

Un clé étrangère est utilisée lorqu'il y a une relation 1-n entre deux tables

Un index est systèmatiquement associé à une clé étrangère

Résultat
Réponse partiellement correcte
Modélisation +20/60pts

33 / 44
Anis MOKHTARI (mokhtarianis@hotmail.fr)
Question 26: Condition WHERE simple (avec double ORDER BY)
SQL 03:55 / 04:00 0 / 50 pts

Question

Modèle de données Objectif


Rédigez une requête qui renvoie les meilleurs joueurs de basketball. Nous définissons les meilleurs
joueurs de basketball comme les personnes dont le ppg est supérieur ou égal à 20,0, le rpg et le apg
sont tout deux supérieurs ou égaux à 5,0, et le games_played supérieur ou égal à 65. Conditions
Colonnes attendues : first_name , last_name , dans cet ordre. Trier les lignes par last_name puis
par first_name dans l'ordre alphabétique. Exemple :

---------------------------
| FIRST_NAME | LAST_NAME |
---------------------------
| James | Durant |
| LeBron | James |
| Russell | Westbrook |
---------------------------

34 / 44
Anis MOKHTARI (mokhtarianis@hotmail.fr)
Réponse

1 -- SQL request(s) below


2 SELECT first_name,last_name
3 FROM basketball_player_stats
4 WHERE ppg >= 20
5 AND rpg >=5
6 AND apg >=5
7 AND games_played >= 65
8 ORDER BY
9 first_name
10 ,last_name
11 DESC

Voir le code playback

Résultat
Résultat
Connaissance du langage +50pts

35 / 44
Anis MOKHTARI (mokhtarianis@hotmail.fr)
Question 27: [Vehicle Data Model] SQL - HAVING
SQL 04:06 / 05:00 200 / 200 pts

36 / 44
Anis MOKHTARI (mokhtarianis@hotmail.fr)
Question

37 / 44
Anis MOKHTARI (mokhtarianis@hotmail.fr)
Modèle de données

Objectif
Extraire le nombre de véhicules ( vehicle ) par marque ( make ). Seules les marques qui comptent deux
véhicules ou plus doivent être affichées.

Conditions
Colonnes attendues : make , vehicle_make_count , dans cet ordre. Exemple :

-------------------------------
| MAKE | VEHICLE_MAKE_COUNT |
-------------------------------
| Ford | 8 |
| Toyota | 2 |
-------------------------------

38 / 44
Anis MOKHTARI (mokhtarianis@hotmail.fr)
Réponse

1 -- SQL request(s) below


2 select * from(
3 SELECT make,count(*) as vehicule_make_count
4 FROM vehicle
5 group by make)
6 where vehicule_make_count >=2
7 order by vehicule_make_count desc

Voir le code playback

Résultat
Résultat
Connaissance du langage +200pts

39 / 44
Anis MOKHTARI (mokhtarianis@hotmail.fr)
Question 28: Condition WHERE simple (inégalité avec champ
calculé)
SQL 02:13 / 03:00 50 / 50 pts

Question

Modèle de données Objectif


Extraire les pays dont la consommation de bière ( beer_consumption ) est strictement supérieure aux
consommations de spiritueux ( spirit_consumption ) et de vins ( wine_consumption )
cumulées. Conditions
Colonnes attendues : country , beer_consumption , dans cet ordre. Trier les lignes par country ,
dans l'ordre alphabétique. Exemple :

-----------------------------------------------
| COUNTRY | BEER_CONSUMPTION |
-----------------------------------------------
| Algeria | 25 |
| Burundi | 88 |
| Ecuador | 162 |
-----------------------------------------------

Réponse

1 -- SQL request(s) below


2 SELECT country,beer_consumption
3 FROM alcohol_consumption
4 WHERE beer_consumption > (wine_consumption + spirit_consumption)
5 order by country asc

Voir le code playback

40 / 44
Anis MOKHTARI (mokhtarianis@hotmail.fr)
Résultat
Résultat
Connaissance du langage +50pts

41 / 44
Anis MOKHTARI (mokhtarianis@hotmail.fr)
Question 29: [Vehicle Data Model] SQL - OUTER JOIN
SQL 04:57 / 08:00 300 / 300 pts

Question
Modèle de données

Objectif
Extraire tous les véhicules et leurs pièces associées ( vehicle_part ) s'ils en ont au moins une. Si un
véhicule n'a pas de pièces référencées, afficher null pour le nom de la pièce ( part_name ).

42 / 44
Anis MOKHTARI (mokhtarianis@hotmail.fr)
Conditions
Colonnes attendues : vin , part_name , dans cet ordre. Ne pas afficher de doublons. Exemple :

-----------------------------------------
| VIN | PART_NAME |
-----------------------------------------
| WP0CA29924S650563 | Left Door |
| 1G4GD5EDXBF330171 | Windshield |
| 4T3ZK3BB7BU042861 | null |
-----------------------------------------

Réponse

1 -- SQL request(s) below


2 SELECT DISTINCT v.VIN,vp.PART_NAME
3 FROM vehicle AS v
4 LEFT JOIN vehicle_part AS vp
5 ON v.VEHICLE_ID = vp.VEHICLE_ID

Voir le code playback

Résultat
Résultat
Résolution de problèmes +300pts

43 / 44
Anis MOKHTARI (mokhtarianis@hotmail.fr)
Glossaire

Connaissance du langage

La mesure de cette compétence permet de déterminer l'expérience du candidat dans la pratique d'un langage de
programmation. Privilégiez cette compétence si, par exemple, vous recherchez un développeur qui devra être
rapidement opérationnel.

Modélisation

Cette mesure fournit une indication sur la capacité du candidat à appliquer des solutions standard pour résoudre des
problèmes récurrents. Un développeur ayant un bon niveau dans cette compétence augmentera la qualité
(maintenabilité, évolutivité) de vos applications. Cette compétence ne dépend pas spécifiquement d'une technologie.
Privilégiez cette compétence si, par exemple, vous recherchez un développeur qui sera amené à travailler sur les
briques qui structurent vos applications, à anticiper les besoins de demain pour développer des solutions pérennes.

Résolution de problèmes

Cette compétence correspond aux aptitudes du candidat à comprendre et à structurer son raisonnement pour trouver
des solutions à des problèmes complexes. Cette compétence ne dépend pas spécifiquement d'une technologie.
Privilégiez cette compétence si, par exemple, vos applications ont une composante technique importante (R&D,
innovation).

Fiabilité

La fiabilité caractérise la capacité du candidat à réaliser des solutions qui prennent en compte les cas particuliers. Plus
cette compétence est élevée, plus vos applications sont robustes (moins de bugs).

44 / 44
Anis MOKHTARI (mokhtarianis@hotmail.fr)

Vous aimerez peut-être aussi