0
votes

Nom de la ville la plus courte et la plus longue

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 ;


1 commentaires

Cela ne fonctionne pas parce que vous commandez par City lorsque vous vouliez probablement commander par longueur (ville) .


7 Réponses :


0
votes

Vous devez modifier votre commander par : xxx

Cela donnera la réponse au nom le plus long. Pour le nom le plus court, changez simplement la commande par pour utiliser ASC pour longueur (ville) .


2 commentaires

L'exigence demande des noms de ville deux 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.



1
votes

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);


1 commentaires

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.



-1
votes
SELECT CITY,
       LENGTH(CITY) as length
  FROM CITY
 ORDER BY length ASC limit 1;

2 commentaires

Limiter Option pour Commander 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.



0
votes

Mon moyen préféré de le faire dans Oracle utilise le mot-clé : xxx

dans mon expérience, garder a une très bonne performance , donc je ne serais pas surpris si cela avait la meilleure performance sur les grandes données.


2 commentaires

Je ne comprends pas. Pourquoi le nom de la ville serait-il manquant?


@ Barbarosözhan. . . Merci. J'ai corrigé la réponse.



-1
votes

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?

** xxx

** **


0 commentaires

-1
votes

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 )


0 commentaires

-1
votes
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

0 commentaires