Loading...

Във форума е въведено ограничение, което позволява на потребителите единствено да разглеждат публикуваните въпроси.

Gesh4o avatar Gesh4o Trainer 305 Точки
Best Answer

Здравейте,

Имената на колоните трябва да са идентични с тези от примера - трябва да е ChatId, а не ChatID. Другото, което е важно за Judge-a е подредбата при създаване на композитния ключ в Many-To-Many релацията, той трябва да бъде ("PRIMARY KEY(ChatId, UserId)").

Поздрави! :)

0
03/02/2017 12:35:49
iliyamar avatar iliyamar 13 Точки

Здравейте и от мен,

Има технически грешки в условието на задачата Section 1. DDL   . При описанието на таблицата User има полета зададени като Location_id и Credential_id. Същите, съгласасно диаграмата трябва да са без долна черта  LocationId и CredentialId, което е по-приемливо за judge  и ме докара до 18/25. Интересното е ,че в Chats  на диаграмата има поле Tittle, което в базата за прочитане е Title,  но мисля че не влияе на точките. 
Ще помоля някой от решилите задачата да погледне къде според него се губят останалите точки или да сподели свое решение!
http://pastebin.com/tDgpPcRX
Благодаря предварително!

PP-ОТКРИХ СИ ГРЕШКАТА. бях написал едно поле като SentON, вместо SentOn

0
13/02/2017 09:54:33
gadjov avatar gadjov 115 Точки

Gesh4o Може ли да дадеш повече инфо относно тази подредба. По принцип правилно ли е така и само джъдж се сърди или?

0
13/02/2017 22:32:15
Gesh4o avatar Gesh4o Trainer 305 Точки

Когато се създава primary key отдолу SQL обикновено създава index, по който може да се претърсва. Когато имаме композитен ключ (т.е. primary key с повече от една колона) то отново ще създаде index по колоните, участващи в ключа. Когато създавамe index-и обаче знаем, че при тях реда коя колона идва първа има голямо значение за продуктивността на самия index като цяло. Това е и една от причините да има разлика в производителността, когато създаваме два различни composite ключа, съдържащи едни и същи колони, но в различен ред. С други думи:"PRIMARY KEY(ChatId, UserId) != PRIMARY KEY(UserId, ChatId)".

От гледна точка на изпита обаче, това НЕ би трябвало да е от значение, защото не е предоставена информация по коя колона ще се търси по-често (макар това да се струва очевидно на човека, пишещ заявката).

1
14/02/2017 09:51:16
esend3 avatar esend3 8 Точки

Никой ли не може да удари едно рамо ;)

0
Maria_ls avatar Maria_ls 383 Точки

Здравейте. Имам проблем със задача от същия изпит - 9.Message count. В джъдж изкарва само 2/4. Нулевия тест и първия минават, последния не. Пробвах с какъв ли не Join - inner, left, right, full и без Join също, пробвах и с първа колона c.Id вместо м.ChatId, пробвах да сортирам по m.ChatId вместо c.Id - все един и същ резултат.

Има и една част от условието, която не разбирам "Some messages may not have a chat." Аз имам чатове без съобщения, но обратното не...

http://pastebin.com/M6LiQhEa

0
esend3 avatar esend3 8 Точки

9. Message Count :

SELECT TOP 5 c.Id, COUNT(m.Content) AS MessageCount
  FROM Chats AS c
  RIGHT JOIN Messages AS m
       ON m.ChatID = c.Id
 WHERE m.Id < 90
 GROUP BY c.Id
 ORDER BY MessageCount DESC , c.Id ASC

1
05/02/2017 10:34:50
esend3 avatar esend3 8 Точки

Аз не мога да реша 12-та, а 13-та и 14та само по 2 точки ми дава, ако някой има решение да сподели ще е супер ;)

0
Maria_ls avatar Maria_ls 383 Точки

Благодаря много. Интересното е, че резултатите в двете решения, са 1/1 всичките 51 реда ако не ползваме ТОП 5, а на Judge едното не му харесва smiley

А за другите задачки, като стигна до тях, ако успея да ги реша, ще ти ги дам.

0
05/02/2017 10:47:50
ivan.d.uzunov avatar ivan.d.uzunov 22 Точки

10.  Credentials

SELECT Nickname, c.Email, c.Password FROM Credentials as c
join Users as u on c.Id = u.CredentialId
where right(c.Email, 5) = 'co.uk'
order by c.Email 

2/4 ми дава джъджа. Може ли помощ?

0
esend3 avatar esend3 8 Точки

WHERE c.Email LIKE '%co.uk'

0
ivan.d.uzunov avatar ivan.d.uzunov 22 Точки

Да, знам че и така става, но защо не става моето? :(

0
Gesh4o avatar Gesh4o Trainer 305 Точки

Здравей,

Когато използваме wildcards конкретно - "%co.uk", това ще ни върне като съвпадение следния случай  -"test-email.co.uk    ", защото ще игнорира празните разстояния накрая. В по-горното решение "извадения" стринг ще е изглежда  така - ".uk  ", което е различно от "co.uk".

Поздрави! :)

1
stoyan.grigorov avatar stoyan.grigorov 37 Точки

Относно Section 3: Querying - 14. Last Chat

Интересува ме защо първите две решения не дават пълен размер точки. В първото решение с променливите си взима всичко както трябва пък judge казва , че греши. 

 

Може ли някой от лекторите или някой който е наясно  да каже защо така се получава.

Цък: http://pastebin.com/g1fKKXqe

 

0
Gesh4o avatar Gesh4o Trainer 305 Точки

Здравей,

В задачата се изисква първото съобщение от последния стартиран чат. Всичко окей, но това НЕ означава, че последно стартирания чат е само един и че не може да има и други чатове, стартирани заедно с него - на една и съща дата и час. Т.е. в последния тест има няколко чата, които са последни и на всички тях трябва да се визуализират първите съобщения.
Ето едно твое "неработещо" решение, така че да спазва гореописания граничен случай:

SELECT TOP (1) WITH TIES c.Title, m.Content
FROM Chats AS c
LEFT JOIN Messages AS m
ON m.ChatId = c.Id
ORDER BY c.StartDate DESC

Поздрави! :)

0
Jean1 avatar Jean1 3 Точки

Може ли и обяснение за 13-та задача защо трябва да използваме NUMERIC Което не затича цифтире след запетаята..?

0
Gesh4o avatar Gesh4o Trainer 305 Точки

Заигравката в тази задача е относно точността, която се изисква, защото могат да се подадат стойности които имат няколко знака след десетичната запетая (повече от 4). NUMERIC ЗАЧИТА числата след десетичната запетая и в линка може да се види: "The default precision is 18."

0
iliyamar avatar iliyamar 13 Точки

Section 3: Querying - 7. Chats 4/4, но...
Въпросът ми е следният:
Защо при положение, че се търси '.Select all chats that that are active and ....' В примера и теста се приемат за верни стойностите при които IsActive = 0 ? Нали по принцип 0=false при BIT?

 Съгласно https://msdn.microsoft.com/en-us/library/ms177603.aspx
TRUE is converted to 1 and FALSE is converted to 0.

0
esend3 avatar esend3 8 Точки

Абе и на мене като че ли ми направи такова впечатление задачата.. :)

0
heilin90 avatar heilin90 69 Точки

За BONUS Section 5: Update Trigger aз го разбирам, че трябва да изтрием от UsersChats, Credentials и Messages или бъркам?

 

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