Databases MSSQL Retake Exam - 15 December 2016
Здравейте,
започнах да решавам въпросният изпит но още при съставянето не базата не мога да си взема всички точки дава ми само 6 , надявам се някой да погледне къде бъркам.
Здравейте,
започнах да решавам въпросният изпит но още при съставянето не базата не мога да си взема всички точки дава ми само 6 , надявам се някой да погледне къде бъркам.
Здравейте,
Имената на колоните трябва да са идентични с тези от примера - трябва да е ChatId, а не ChatID. Другото, което е важно за Judge-a е подредбата при създаване на композитния ключ в Many-To-Many релацията, той трябва да бъде ("PRIMARY KEY(ChatId, UserId)").
Поздрави! :)
Никой ли не може да удари едно рамо ;)
Здравейте. Имам проблем със задача от същия изпит - 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." Аз имам чатове без съобщения, но обратното не...
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
Аз не мога да реша 12-та, а 13-та и 14та само по 2 точки ми дава, ако някой има решение да сподели ще е супер ;)
Благодаря много. Интересното е, че резултатите в двете решения, са 1/1 всичките 51 реда ако не ползваме ТОП 5, а на Judge едното не му харесва
А за другите задачки, като стигна до тях, ако успея да ги реша, ще ти ги дам.
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 ми дава джъджа. Може ли помощ?
WHERE c.Email LIKE '%co.uk'
Да, знам че и така става, но защо не става моето? :(
Здравей,
Когато използваме wildcards конкретно - "%co.uk", това ще ни върне като съвпадение следния случай -"test-email.co.uk ", защото ще игнорира празните разстояния накрая. В по-горното решение "извадения" стринг ще е изглежда така - ".uk ", което е различно от "co.uk".
Поздрави! :)
Относно Section 3: Querying - 14. Last Chat
Интересува ме защо първите две решения не дават пълен размер точки. В първото решение с променливите си взима всичко както трябва пък judge казва , че греши.
Може ли някой от лекторите или някой който е наясно да каже защо така се получава.
Цък: http://pastebin.com/g1fKKXqe
Здравей,
В задачата се изисква първото съобщение от последния стартиран чат. Всичко окей, но това НЕ означава, че последно стартирания чат е само един и че не може да има и други чатове, стартирани заедно с него - на една и съща дата и час. Т.е. в последния тест има няколко чата, които са последни и на всички тях трябва да се визуализират първите съобщения.
Ето едно твое "неработещо" решение, така че да спазва гореописания граничен случай:
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
Поздрави! :)
Може ли и обяснение за 13-та задача защо трябва да използваме NUMERIC Което не затича цифтире след запетаята..?
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.
Абе и на мене като че ли ми направи такова впечатление задачата.. :)
А някой да е направил :
ОТ изпита
?
За BONUS Section 5: Update Trigger aз го разбирам, че трябва да изтрием от UsersChats, Credentials и Messages или бъркам?
Здравейте и от мен,
Има технически грешки в условието на задачата Section 1. DDL . При описанието на таблицата User има полета зададени като Location_id и Credential_id. Същите, съгласасно диаграмата трябва да са без долна черта LocationId и CredentialId, което е по-приемливо за judge и ме докара до 18/25. Интересното е ,че в Chats на диаграмата има поле Tittle, което в базата за прочитане е Title, но мисля че не влияе на точките.
Ще помоля някой от решилите задачата да погледне къде според него се губят останалите точки или да сподели свое решение!
http://pastebin.com/tDgpPcRX
Благодаря предварително!
PP-ОТКРИХ СИ ГРЕШКАТА. бях написал едно поле като SentON, вместо SentOn
Gesh4o Може ли да дадеш повече инфо относно тази подредба. По принцип правилно ли е така и само джъдж се сърди или?
Когато се създава primary key отдолу SQL обикновено създава index, по който може да се претърсва. Когато имаме композитен ключ (т.е. primary key с повече от една колона) то отново ще създаде index по колоните, участващи в ключа. Когато създавамe index-и обаче знаем, че при тях реда коя колона идва първа има голямо значение за продуктивността на самия index като цяло. Това е и една от причините да има разлика в производителността, когато създаваме два различни composite ключа, съдържащи едни и същи колони, но в различен ред. С други думи:"PRIMARY KEY(ChatId, UserId) != PRIMARY KEY(UserId, ChatId)".
От гледна точка на изпита обаче, това НЕ би трябвало да е от значение, защото не е предоставена информация по коя колона ще се търси по-често (макар това да се струва очевидно на човека, пишещ заявката).