494

SQLTest — год вместе!

Серия SQLtest - бесплатный тренажёр SQL

Чуть больше года назад я запустил проект sqltest.online — бесплатный онлайн-тренажёр, призванный помочь всем желающим освоить SQL на практике. Сегодня мы с гордостью подводим итоги этого замечательного года!

Статистика Яндкс Метрики

Статистика Яндкс Метрики

Наши достижения:

  • Тренажёр предоставляет вам пять баз данных (MySQL, PostgreSQL, MS SQL Server, SQLite, Firebird) для отработки навыков.

  • Вам доступно почти 300 разнообразных практических задач.

  • Реализована возможность пройти тест на знание SQL и узнать свой рейтинг.

  • По данным Яндекс.Метрики:

    • Наш сайт посетили более 38 000 человек, просмотрев более 350 000 страниц!

    • Более 2700 зарегистрированных пользователей решили почти 50 000 задач — это потрясающий результат!

    • Наше дружное сообщество в Telegram объединяет более 700 активных участников.

Огромное спасибо всем, кто был с нами в этот год! Ваша поддержка и активность — лучшая мотивация для нас.

Хотите поддержать проект?

Мы рады, что SQLTest помогает вам в изучении SQL. Если вы хотите внести свой вклад в развитие проекта и поддержать его дальнейшее существование, вы можете сделать пожертвование. Любая сумма будет принята с благодарностью и направлена на улучшение и развитие.

Хотите поддержать проект и рассказать о своём продукте или услуге нашей заинтересованной аудитории? Свяжитесь с нами по поводу размещения рекламы на сайте sqltest.online!

4
Автор поста оценил этот комментарий

Интересный инструмент, попробую использовать для своих студентов. Хотя, слишком хочет один вариант решения, когда есть альтернативы. Например:

Выберите название, описание и год выхода фильмов из таблицы film. Отсортируйте полученный список по названию в алфавитном порядке и выведите первые десять строк

Очевидное, конечно, это select .. from .. order by .. limit 10, при условии, что индексы на месте. Но тест настолько явно хочет этот ответ, что совершенно не принимает альтернативные решения. Попытка использовать window function rank over, просто выдаёт ошибку. Хотя запуск даёт абсолютно идентичный результат, те же десять строк, с нужными колонками и отсортированные по алфавиту.


WITH rf AS (

SELECT title, description, release_year, ROW_NUMBER() OVER (ORDER BY title) AS rn

FROM film

)

SELECT title, description, release_year

FROM rf

WHERE rn BETWEEN 11 AND 20;

Я понимаю, что это решение проигрывает по всем статьям - слишком много операций (filter, table scan, materialize cte, window aggregate, sort) по сравнению с тривиальным. Explain analyze также подтверждает, что оно дороже. Использовать wf для такой задачи нерационально, да и новичок об их существовании вообще не знает. Но результат-то идентичный "эталонному" и полностью валидный. Если результаты совпадают, ну оцените стоимость, выдайте ответ, что мол, производительность хромает и должно быть решение лучше.

раскрыть ветку

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества

Недвижимость и ремонт

Теги

Популярные авторы

Сообщества