Quertiez les deux villes de la station avec les noms de ville les plus courts et les plus longs, ainsi que leurs longueurs respectives (c'est-à-dire Nombre de caractères dans le nom). S'il y a plus d'une ville la plus petite ou la plus grande, choisissez celui qui vient d'abord lorsqu'il est commandé par ordre alphabétique.
Puis-je savoir de réponse à cette question? P>
SELECT CITY,
LENGTH(CITY)
FROM STATION
ORDER BY CITY ASC
FETCH FIRST 1 ROWS ONLY ;
7 Réponses :
Vous devez modifier votre Cela donnera la réponse au nom le plus long. Pour le nom le plus court, changez simplement la commande commander par code>: par code> pour utiliser ASC code> pour longueur (ville) code>. P> p>
L'exigence demande des noms de ville deux i> une seule.
J'ai lu cette partie, mais l'utilisateur n'a pas précisé qu'il devait être dans une requête. Votre réponse s'occupe de cela, cependant.
J'utiliserais Row_Number CODE> ICI: WITH cte AS (
SELECT s.*, ROW_NUMBER() OVER (ORDER BY LENGTH(CITY), CITY) rn_first,
ROW_NUMBER() OVER (ORDER BY LENGTH(CITY) DESC, CITY) rn_last
FROM STATION s
)
SELECT CITY, LENGTH(CITY) AS CITY_LENGTH
FROM cte
WHERE 1 IN (rn_first, rn_last)
ORDER BY LENGTH(CITY);
Yup je l'ai fait en utilisant Row_Number sur Hacker Rank.oracle accepte de chercher les 1 premières lignes seulement mais cela n'a pas fonctionné sur Hackerrank.
SELECT CITY,
LENGTH(CITY) as length
FROM CITY
ORDER BY length ASC limit 1;
Limiter CODE> Option pour Commander CODE> La clause n'existe pas dans Oracle.
Bien que cette réponse soit correcte. Les réponses de code que sont rarement utiles. Veuillez commenter votre code et expliquer comment ce code résout le problème.
Mon moyen préféré de le faire dans Oracle utilise le mot-clé code> code>: dans mon expérience, garder code> a une très bonne performance , donc je ne serais pas surpris si cela avait la meilleure performance sur les grandes données. P> p>
Je ne comprends pas. Pourquoi le nom de la ville serait-il manquant?
@ Barbarosözhan. . . Merci. J'ai corrigé la réponse.
Merci pour les réponses.Je vérifiera "garder" une fois. J'ai résolu de cette façon. Il y a une autre possibilité d'optimiser ou de le rendre plus simple?
** p> ** ** p> p>
Sélectionnez la ville, la longueur (ville)
de la station p>
Là où la longueur (ville) dans (Sélectionnez Min (Longueur (Ville)) P>
FROM STATION )
SELECT top 1 City,LEN(City) as Citylength into #tmp FROM STATION WHERE LEN(City)=(SELECT MIN(LEN(City)) FROM STATION ) order by City asc SELECT top 1 City,LEN(City) as Citylength into #tmp1 FROM STATION WHERE LEN(City)=(SELECT MAX(LEN(City)) FROM STATION ) order by City select * from #tmp union select * from #tmp1
Cela ne fonctionne pas parce que vous commandez par
City code> lorsque vous vouliez probablement commander parlongueur (ville) code>.