Pourquoi ma solution d'un problème sur le site d'étude n'est pas acceptée et montrant "mauvaise réponse"?
Voici le problème - https://www.hackerrank.com/challenges/the-pads/problem/ : P>
Générer les deux ensembles de résultats suivants: P>
Requête une liste de tous les noms de tous les noms dans
Les professions code>, suivies immédiatement par la première lettre de chaque profession de parenthèse (c'est-à-dire entre parenthèses). Par exemple: Anactorname (A), Adoctorname (D), Aprofessorname (P) et ANINGERNAME (S). P> li>
interroge le nombre d'occurrences de chaque profession dans
professions code>. Trier les occurrences dans l'ordre croissant et les sortir dans le format suivant: P> li> ol>
Il y a un total de [profession_count] [Occupation] s. P>
où [profession_count] est le nombre d'occurrences d'une profession dans
professions code> et [profession] est le nom d'occupation minuscule. Si plus d'une occupation a le même [métier_count], ils doivent être commandés alphabétiquement. P> blockQuote>
ma requête est la suivante: p>
xxx pré> et p>
xxx pré> La requête a la même sortie comme dans le Exemple sur Hackerrank. Qu'est-ce que je fais mal? P> p>
4 Réponses :
Deux numéros:
première requête: p> Votre deuxième requête attend de quelques professions statiques mais retournera null code> lorsque l'occupation dans le Les données de test ne sont pas l'une d'entre elles. N'utilisez pas
case code> ici. P>
Vous travaillez! Je Google it (concat) et écrivez mon propre comme vous l'avez fait
première requête p>
xxx pré> deuxième requête p> blockQuote>
xxx pré> blockquote>
La requête ci-dessous a fonctionné pour moi:
SELECT NAME || '(' || SUBSTR(OCCUPATION,1,1)||')' FROM OCCUPATIONS UNION SELECT 'There are a total of '|| count(occupation) || ' ' || LOWER(occupation)||'s.' FROM OCCUPATIONS GROUP BY OCCUPATION;
Explication 1:
Pour la première partie, lorsqu'il est nécessaire d'imprimer le nom avec l'occupation, nous avons des cas pour vérifier l'occupation et concatez donc le suffixe. P> li>
Nous utilisons la commande par clause pour commander les résultats en fonction de l'ordre de nom ascendant. P>
li>
ol> explication 2: p> Toute la requête fait, dans ce cas, est de grouper par les résultats avec une occupation et d'impression de la chaîne requise. < / p>
Pouvez-vous exécuter une instruction code> SELECT CODE> avec du texte comme celui-ci sans utiliser la fonction concat () code>? En outre, pouvez-vous ajouter une description de ce que vous avez fait différemment ici plutôt que de simplement afficher du code?
Bonjour, @tshimkus, oui, nous pouvons exécuter une instruction SELECT avec du texte comme celui-ci, en outre, nous avons des fonctions telles que gauche et droite utilisées pour imprimer le texte avec certaines manipulations de chaîne. Voici un lien vers la même w3schools.com/sql/func_sqlserver_left.asp . Et oui, en fonction de votre suggestion, j'ai ajouté la description à ma solution, ce n'est pas très différent, mais juste une approche différente à l'aide de la déclaration de cas que la solution A / C.
Merci d'avoir mis à jour la réponse. Il est beaucoup plus utile maintenant qu'il a une description de ce que le code suggéré fait.
Convenu! Merci :)
Bienvenue dans le débordement de pile. Veuillez formater votre code et mettez-le dans des blocs de code la prochaine fois.
Bienvenue à! Veuillez ne pas relier à des sites externes avec votre description de problème. Ajoutez toutes les informations nécessaires dans votre question pour le faire un exemple de reproductible minimal