Ищу хитрые задачи по SQL
Занялся изучением SQL и очень хочу порешать задачки, которые любят подсовывать на собеседованиях.
Кому нежалко, напишите свои варианты в этом топике.
Занялся изучением SQL и очень хочу порешать задачки, которые любят подсовывать на собеседованиях.
Кому нежалко, напишите свои варианты в этом топике.
Однако как с темы на тему прыгаете.
Посмотрите, поиск идет ТЕКСТОВЫЙ, а не по полям реляционной БД.
По секрету говоря, там сидит огромный штат китайцев, где-то с миллиард человечков. Когда вы посылаете в гуголь поисковый запрос запрос — там загорается лампочка, и каждый китаец пишет в ответной форме где он эти слова на каком сайте встречал. Ихние ответы в гугле консолидируются, разбиваются на страницы, и отправляется в ответ.
Я же Вам говорю о другом, о том, что SQL — это формулировка правил поиска для реляционных БД, а
Поисковая машина Гугла
не ищет в реляционной БД.
А я говорю о том, что на одном поиске Гугл не сошелся и говорить «Гугл не использует SQL» не эквивалентно «Поисковая машина Гугла не использует SQL».
Да понятно, я не об этом, Гугл не использует SQL при поиске, как и любой поисковик. Для создания
Структуры данных, обеспечивающие быстрый поиск
надо совсем не SQL
Гугл уже давно не только поисковик.
2 Аноним
Извините, к сожалению не имею их патентов. Но то, что не реляционная, это очевидно.А на чем они тогда основываются?
Посмотрите, поиск идет ТЕКСТОВЫЙ, а не по полям реляционной БД.
А на чем они тогда основываются?
Извините, к сожалению не имею их патентов. Но то, что не реляционная, это очевидно.Посмотрите, поиск идет ТЕКСТОВЫЙ, а не по полям реляционной БД.
Т.е. СУБД, которая управляет бд Гугла не использует реляционную модель, это хотите сказать?
Функция ROW_NUMBER () есть в MS SQL сервере, начиная с 2005. на 2000 ее нет. Так что, если нужно, чтобы запрос был совместим и с 2000 — без серверных курсоров, которые вставляют во временную таблицу, с колонкой identity, а потом ее возвращать, ИМХО, не обойтись. Хоть серверные курсоры — это зло.
Самый интересный вопрос, который попадался, не чистый SQL, но все-же: транспонировать таблицу методами СУБД.
T-SQL это стандартный синтаксис?
SELECT ROW_NUMBER() OVER (ORDER BY LastName, FirstName, MiddleName), LastName, FirstName, MiddleName FROM Persons
RredCat, большое спасибо.
фамилия, имя отчество считать уникальными, сортировать именно в таком порядке.
Product
SELECT C.Category, P.Product, P.Price FROM C, P
WHERE C.Id = P.Category_Id
AND P.Id in
(SELECT TOP 2 Id FROM P
WHERE P.Category_Id = C.Id
ORDER BY Price DESC)
ORDER BY C.Category, P.Product
а вообще. есть категории и есть продукты. вывести 5 самых дорогих продуктов для каждой группы. если цена одинаковая сортировать по дате добавления, потом по названию.
22 коментарі
Додати коментар Підписатись на коментаріВідписатись від коментарів