Тема
|
Теста на НАРС
|
|
Автор |
DrmR (глупак) |
Публикувано | 09.08.05 11:53 |
|
абе на к'во се натъкнах в теста на НАРС:
2.Коя следните заявки е коректна спрямо синтаксиса на езика SQL?
SELECT Username, Password, COUNT(Username) FROM Users
SELECT Username, Password FROM Users GROUP BY Username
SELECT * FROM Users WHERE Username IS NOT NULL
SELECT * FROM Users WHERE Username IS Password
INSERT * FROM Users.Username INTO Users.Password
като верен отговор е отбелязано 3-то (средното). отдолу пише, че има само един верен отговор. да ама и 2-рия си е напълно синтактично правилен. верно, че вади същото и без GROUP BY клаузата, ама все пак си е коректен спрямо синтаксиса. греша ли някъде или тия са големи балъци?
|
|
Тема
|
Re: Теста на НАРС
[re: DrmR]
|
|
Автор | Winnetou (Нерегистриран) |
Публикувано | 09.08.05 12:02 |
|
Mdam - GROUP BY ste ti suzdade oste edna grupa - na wsichki "NULL"-chowtzi. Ama twa puk si e nachin na powedenie i niama obsto sus sytax-a ;).
Ama puk to i az ne razbiram mnogo ot SQL :)
|
|
|
Не можеш да имаш GROUP_BY и без поне един агрегат (MIN/COUNT, etc.)?
Я Я отивам да ме вземат в академията мууууууу  Редактирано от Maтa Kocмaтa на 09.08.05 12:06.
|
|
Тема
|
Re: Теста на НАРС
[re: DrmR]
|
|
Автор |
lngon (непознат
) |
Публикувано | 09.08.05 14:10 |
|
На второто проблема е че не можеш да имаш колони в SELECT-a които ги няма изброени в GROUP BY клаузата.
|
|
|
Няма да те вземат в академията, щото group by без агрегат си е съвсем валидна конструкция :)
Просто ако имаш 2 или повече записа в resultset-а с еднакви полета в group by ще ти върне един. Доста подобно на select distinct.
|
|
|
Мда отивам да се срамувам. 
Машина за отделяне на кожа и сланина от парени свине
|
|
Тема
|
Re: Теста на НАРС
[re: DrmR]
|
|
Автор | nasko (Нерегистриран) |
Публикувано | 09.08.05 15:47 |
|
Има различни SQL-и. Има ANSI SQL 92 стандарт, както и много реализации, които малко или много се различават. Интерпретацията на изрази с GROUP BY не прави изключение. Вторият израз ще е валиден само в някои реализации. Третият очевидно си е валиден. Така че не мисля че въпросът е подвеждащ...
|
|
|
В Стандартния ANSI-SQL всяка колона в SELECT списъка трябва или да има агрегат или да е част от GROUP BY списъка. Предполагам че някои бази могат да приемат втората заявка за валидна, но това е по-скоро изключение. SQL Server например не би приел подобна заявка.
Епа, това е моето хоби...
|
|
Тема
|
Re: Теста на НАРС
[re: nasko]
|
|
Автор | nasko (Нерегистриран) |
Публикувано | 09.08.05 15:52 |
|
Впрочем като се замисля май не се сещам да съм срещал такава реализация, която да приема втория израз за коректен... :Р
|
|
Тема
|
Re: Теста на НАРС
[re: nasko]
|
|
Автор |
XaMaB (Нерегистриран) |
Публикувано | 09.08.05 16:55 |
|
Хмм странно първо го пробвах в mysql
Use mysql;
SELECT User, Password FROM User GROUP BY User;
учудващо ама го приема.
MS SQL 2000 се направи на тежък и изплю
Column 'Users.password' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.
|
|