Loading...
kosio197 avatar kosio197 104 Точки

Problem 11. Mix of Peak and River Names From Built-in Functions

Привет,

Това ми е заявката, на локалната база изглежда наред, но в judje връща грешен отговор:

SELECT p.peak_name , r.river_name,
 LOWER( CONCAT(SUBSTRING(p.peak_name, 1, LENGTH(p.peak_name)-1), r.river_name))  AS mix
  FROM peaks AS p, rivers AS r
   WHERE (SUBSTRING(p.peak_name,  LENGTH(p.peak_name), LENGTH(p.peak_name)) = SUBSTRING(r.river_name, 1,1))
     ORDER BY mix;

Къде може да ми е грешката?

Тагове:
1
Databases Basics - MySQL
kaloyannikov avatar kaloyannikov 531 Точки

Пуснах ти заявката да видя на някои записи остават последните букви от върховете и от там и mismatch-a в judge.

Примерно(Galan, Niger и Galan,Nile) трябва да са galaniger i galanile  , а при теб ги изкарва galanniger и galannile.

Разликата идва от LENGTH и CHAR_LENGTH , ако го смениш ще мине .

LENGTH - дава дължината в bytes , а CHAR_LENGTH броя chars

Иначе това е моята заявка - http://pastebin.com/YuUd7Mwh 

2
30/09/2016 13:25:08
vancho avatar vancho 430 Точки

И аз се помъчих доста, докато не загрях, че ми дава на river_name с главна първа буква конкатенирано, и го поправих на LOWER и заработи.

 

SELECT peak_name, river_name, CONCAT(LOWER(peak_name), '', SUBSTRING(LOWER(river_name), 2)) AS mix FROM peaks, rivers

WHERE RIGHT(peak_name, 1) = LEFT(river_name, 1)

ORDER BY mix;

0
cefothe avatar cefothe 16 Точки

Това е моята заявка:

SELECT peak_name, river_name,CONCAT(LOWER(SUBSTRING(peak_name,1,LENGTH(peak_name)-1)),LOWER(river_name)) AS mix FROM peaks, rivers WHERE SUBSTRING(peak_name,LENGTH(peak_name),LENGTH(peak_name)) =LOWER( SUBSTRING(river_name,1,1)) ORDER BY mix

А това е резултата ми, имам 78 резултата и не виждам къде е грешката


+ Options

peak_name river_name mix Ascending   
Aconcagua Amazon aconcaguamazon
Aconcagua Amur aconcaguamur
Banski Suhodol Lena banski suhodolena
Banski Suhodol Lower Tunguska banski suhodolower tunguska
Botev Volga botevolga
Carstensz Pyramid Danube carstensz pyramidanube
Damavand Danube damavandanube
Elbrus Saint Lawrence elbrusaint lawrence
Elbrus Salween elbrusalween
Elbrus São Francisco elbrusão francisco
Elbrus Shatt al-Arab elbrushatt al-arab
0
cefothe avatar cefothe 16 Точки

Оправих го проблема е бил в:

LENGTH() returns the length of the string measured in bytes. 
CHAR_LENGTH() returns the length of the string measured in characters.

Използвах LENGTH като го смених на CHAR_LENGTH и проработи, защото 'á' са нужни 2 байта и тук става грешката

0
mbeleva88 avatar mbeleva88 69 Точки

Здравейте,

Може ли някой да намери моята грешка в заявката,
в judge не ми минава, а виждам, че всичко УЖ е наред.

SELECT p.peak_name,
              r.river_name,
              LOWER(CONCAT(p.peak_name,r.river_name)) AS mix
 FROM rivers AS r, peaks AS p
   WHERE LOWER(RIGHT(p.peak_name,1)) = LOWER(LEFT(r.river_name,1))  
   ORDER BY mix

0
bond4o avatar bond4o 8 Точки

SELECT p.peak_name, r.river_name, LOWER(CONCAT(p.peak_name,SUBSTRING(r.river_name,2))) AS mix
FROM rivers AS r, peaks AS p
WHERE LOWER(RIGHT(p.peak_name,1)) = LOWER(LEFT(r.river_name,1))  
ORDER BY mix

 

 

Виж пак условието на задачата

1
17/10/2016 14:19:37
mbeleva88 avatar mbeleva88 69 Точки

уф, ние игнорираме 1ната буква ли :) 

мерси

0
Silgenieva avatar Silgenieva 1 Точки

 

Тази е моята заявка и минава 100 / 100

SELECT peak_name , river_name,
 LOWER( CONCAT(SUBSTRING(peak_name, 1, LENGTH(peak_name)-1), river_name))  AS mix
  FROM peaks AS p, rivers AS r
   WHERE (SUBSTRING(peak_name,  LENGTH(peak_name), LENGTH(peak_name)) = SUBSTRING(river_name, 1,1))
     ORDER BY mix;

0
velmona avatar velmona 1 Точки

 

Вариант 1:

SELECT p.peak_name, r.river_name, lower(CONCAT(p.peak_name,substring(r.river_name,2))) as mix
FROM peaks p, rivers r
WHERE SUBSTRING(REVERSE(p.peak_name),1,1)=SUBSTRING(r.river_name,1,1) ORDER BY mix;

Вариант 2:

SELECT peak_name,river_name, LOWER(CONCAT(peak_name,SUBSTRING(river_name,2)))  AS mix
FROM peaks p, rivers r
WHERE RIGHT (p.peak_name,1)=LEFT(r.river_name,1)
ORDER BY mix;

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.