Questions d'entretien SQL chez Solverines Technology
J'ai récemment passé un entretien technique chez Solverines Technology Solutions. L'épreuve SQL portait sur la récupération d'enregistrements et la numérotation des lignes. J'ai également été confronté à un problème de logique concernant l'inversion de l'état d'ampoules.
Voici les modèles SQL que vous devriez connaître.
Supposons une table Employee avec emp_id et emp_name.
Récupérer le dernier enregistrement :
SELECT * FROM Employee ORDER BY emp_id DESC LIMIT 1;
Récupérer la 3ème ligne :
SELECT * FROM Employee ORDER BY emp_id LIMIT 1 OFFSET 2;
Formule : LIMIT 1 OFFSET (N - 1).
Récupérer la 3ème ligne en partant de la fin :
SELECT * FROM Employee ORDER BY emp_id DESC LIMIT 1 OFFSET 2;
Utilisez ROW_NUMBER() pour des modèles de lignes spécifiques.
Récupérer la 2ème ligne impaire :
SELECT * FROM (SELECT *, ROW_NUMBER() OVER(ORDER BY emp_id) AS rn FROM Employee) t WHERE rn = (2 * 2 - 1);
Formule pour la N-ième ligne impaire : rn = (2 * N - 1).
Récupérer la 3ème ligne paire :
SELECT * FROM (SELECT *, ROW_NUMBER() OVER(ORDER BY emp_id) AS rn FROM Employee) t WHERE rn = (2 * 3);
Formule pour la N-ième ligne paire : rn = (2 * N).
Problème de logique : Inversion d'ampoules
Le problème vous demande d'inverser l'état de N ampoules au cours de K opérations.
Chaque opération vous donne un index de début i et un index de fin j.
Un 0 devient 1.
Un 1 devient 0.
Exemple : N = 5, K = 2. Opération 1 : index 1 à 3. Opération 2 : index 2 à 4.
Initial : 0 0 0 0 0 Après l'Op 1 : 0 1 1 1 0 Après l'Op 2 : 0 1 0 0 1 Résultat final : 0 1 0 0 1.
Ce qu'il faut retenir de l'entretien :
L'entretien a testé ces sujets SQL :
- Trouver le dernier enregistrement.
- Trouver la N-ième ligne en partant du début ou de la fin.
- Utiliser
ROW_NUMBER()pour les lignes paires ou impaires. - Manipulation de tableaux pour les problèmes de logique.
Entraînez-vous sur ces modèles si vous êtes un débutant ou un développeur junior.