Новости сайта 2021-09-17 Все новости Новости за неделю
На этой неделе сертификаты получили:
Зеленцов И.А. (Overcomzi) Последние сертификаты Проверить сертификатИменинники: Азбель Е.Г. (enull) Здоровья и успехов! Ближайшие дни рождения.
Появилось голосование по задачам DML. На сайте появился новый раздел — Блоги. Официальная группа sql-ex в VK.com.
На сайте имеются упражнения по оператору SELECT (157 упражнений на обучающем этапе и 236 — на рейтинговых) и по другим операторам манипуляции данными — INSERT, UPDATE, DELETE и MERGE — (сейчас 44 упражнения). По упражнениям на SELECT ведется рейтинг участников. Смотри Условия тестирования
Наша книга: «SQL. Задачи и решения». Изд-во Питер Анализ характерных ошибок при решении задач обучающего этапа на сайте.
Почитать последние новости сайта.
Практическое владение языком SQL
Сайт поможет каждому, кто хочет приобрести или повысить свои навыки в написании операторов манипуляции данными языка SQL. Суть обучения состоит в том, что вы сами пишете операторы, которые должны вернуть или изменить данные, требуемые заданием. При этом в случае неправильного ответа вы сможете узнать, какие данные возвращает правильный запрос, а также увидеть, что вернул ваш запрос. Кроме того, есть возможность выполнять любые операторы DML к имеющимся базам данных, отключив опцию проверки. Упражнения имеют разный уровень сложности (от 1 до 5), который проставлен во втором столбце списка упражнений. Предлагаются упражнения на выборку данных (оператор SELECT) и упражнения на модификацию данных (операторы INSERT, UPDATE, DELETE и MERGE). По результатам решения задач на сайте ведется рейтинг участников. При этом упражнения на выборку разбиты на три этапа: первый (5 упражнений) без контроля времени на выполнение отдельного задания, второй (начиная с 6 упражнения) — с контролем времени на выполнение каждого задания. На третьем этапе, который называется оптимизационным и начинается с задачи 139, требуется не только правильно решить задачу, но и время выполнения запроса должно быть соизмеримым с временем выполнения авторского решения. Упражнения первого этапа доступны без регистрации, причем задания можно решать в любом порядке. Для выполнения остальных упражнений требуется регистрация. Регистрация бесплатна, как и все остальные сервисы сайта. В третьем столбце списка упражнений будут отмечаться («OK») номера правильно выполненных упражнений для зарегистрировавшихся посетителей. Посетив наш сайт впоследствии, вам не нужно будет вспоминать, какие упражнения вами уже выполнены, а какие — нет. Однажды зарегистрировавшись, вы впоследствии вводите логин и пароль, указанные при регистрации. При входе без авторизации система не будет отслеживать ваши успехи. Для авторизованных пользователей доступен форум, на котором можно обсудить решения предложенных упражнений.
ЗАМЕЧАНИЕ: неправильно сформулированный запрос может вернуть «правильные» данные на текущем состоянии базы данных. Поэтому не стоит удивляться, если результаты неверного запроса совпадут с правильными результатами, но при этом запрос будет оценен системой проверки как неверный.
ВНИМАНИЕ: для корректной работы сайта браузер должен разрешать использование Cookie и JavaScript. Поскольку страницы справки открываются в подчиненном окне, ваш Web-фильтр, если он используется, должен разрешать открытие подчиненных окон.
Сертификация
По результатам тестирования на сайте можно заказать сертификат «SQL Data Manipulation Language Specialist», подтверждающий вашу квалификацию. Качество сертификата мы поддерживаем периодической заменой задач и повышением сертификационных требований.
Используемый синтаксис SQL
Запросы посетителей фактически исполняются сервером SQL, что накладывает ограничения на допустимый синтаксис операторов. В настоящее время на рейтинговых этапах мы используем Microsoft SQL Server 2019 (15.0), а на обучающем этапе — дополнительно MariaDB-10.4 (совместима с MySQL 8), PostgreSQL 12.3 и Oracle Database 11g. Поэтому пользователю нужно придерживаться синтаксиса данных реализаций при написании своих запросов. Отметим, что синтаксис языка SQL, реализованный в Microsoft SQL Server, достаточно близок к стандарту SQL-92. Однако есть ряд отклонений, среди которых можно отметить отсутствие естественного соединения таблиц (NATURAL JOIN). Имеющаяся на сайте справка по языку манипуляции данными SQL, выдержанная в соответствии со стандартом, содержит необходимую информацию для изучения языка и выполнения упражнений. Там же можно найти особенности используемой реализации (SQL Server).
Источник
5 заданий по SQL с реальных собеседований
5 заданий по SQL с реальных собеседований
SQL — один из самых востребованных навыков в современной IT индустрии (на 3 месте по популярности согласно StackOverflow Developer Survey 2020, даже Python идет на 4 месте).
Само собой, конкуренция в этой сфере огромна и собеседования порой превращаются в сущую пытку — кандидатам дают огромные задачи, задают десятки каверзных вопросов, устраивают дизайн-интервью и все это на позицию Junior аналитика…
Сегодня Елизавета, аналитик и эксперт IT Resume, делится 5 задачами и вопросами, которые входят в программу подготовки к собеседованию SQL Interview. Это задачи с реальных собеседований в крупные IT-компании, и они разбиты по уровням — Junior, Middle и Senior. Попробуйте и вы свои силы — сможете их решить без подсказки 😉
аналитик и эксперт в IT Resume
Вводные данные
Есть таблица анализов Analysis:
an_id — ID анализа;
an_name — название анализа;
an_cost — себестоимость анализа;
an_price — розничная цена анализа;
an_group — группа анализов.
Есть таблица групп анализов Groups:
gr_id — ID группы;
gr_name — название группы;
gr_temp — температурный режим хранения.
Есть таблица заказов Orders:
ord_id — ID заказа;
ord_datetime — дата и время заказа;
ord_an — ID анализа.
Далее мы будем работать с этими таблицами.
Задача 1. Уровень: Junior
Формулировка: вывести название и цену для всех анализов, которые продавались 5 февраля 2020 и всю следующую неделю.
Автомакон , Удалённо , От 100 000 до 250 000 ₽
Это задача для начинающих специалистов. В ней проверяется базовое знание SELECT-запросов и умение работать с датой-временем.
Примечание На собеседованиях редко придираются к специфике диалекта — если Вы привыкли работать в PostgreSQL, то используйте привычные функции. Главное — правильно решить задачу.
Задача 2. Уровень: Middle
Формулировка: нарастающим итогом рассчитать, как увеличивалось количество проданных тестов каждый месяц каждого года с разбивкой по группе.
Эта задача уже более высокого уровня: ее можно давать как Middle, так и Junior специалистам. Здесь проверяется базовое понимание оконных функций, джоинов и группировок.
Примечание После того, как вы написали первую версию своего запроса, попробуйте его оптимизировать. Например, в данном примере мы используем CTE — обобщенные табличные выражения.
Задача 3: Уровень Senior
В этой задаче мы будем работать с другой таблицей (да, она будет всего одна). Сам запрос в этой задаче не сложный, но для его написания необходимо как бы уметь «мыслить на SQL».
Формулировка: в данной таблице в какой-то момент времени появились полные дубли. Предложите способ для избавления от них без создания новой таблицы.
Вопрос 1. Уровень: Junior
Есть категория «хитрых» вопросов, которые особенно любят задавать Junior-специалистам. Хотя чего уж там, любым специалистам.
Один из таких видов — вопросы по темам, на которые в повседневной жизни не обращаешь внимания и о которых не задумываешься. Просто делаешь на автомате, а на собеседовании это стреляет. Ну или на проекте, когда код начинает работать неправильно. Но это другая история…
Вопрос: Как оператор GROUP BY обрабатывает поля с NULL?
Если Вы не знаете ответ на этот вопрос, то после прочтения ответа обязательно проверьте свои проекты — может у вас где-то закралась ошибка? 😉
Учитывая, что NULL в SQL — просто отсутствие значения, то все значения NULL при группировке попадают в одну группу. Например, пусть есть таблица:
Тогда запрос select sum(score) from table group by name даст:
Вопрос 2. Уровень Middle
Этот вопрос не такой хитрый, как предыдущий, а вполне себе конкретный. Однако, он требует знания оконных функций и их тонкостей, а это исконное Middle требование.
Вопрос: В чем отличие функции RANK() от DENSE_RANK() ?
Примечание Кстати говоря, по мотивам этого вопроса очень любят давать задачи на собеседованиях в разных вариациях: пронумеровать строки с одинаковыми значениями без разрывов, с разрывами и так далее. Так что потренируйтесь на досуге 🙂
По аналогии с функцией ROW_NUMBER , оконные функции RANK и DENSE_RANK служат для нумерации строк. Однако, делают они это немного иначе: строки с одинаковым значениям получают одинаковый ранг. Для ряда задач это логично: если у двух сотрудников одинаковая зарплата, мы не можем сказать, что кто-то из них первый, а кто-то второй. Они одинаковы. Но при таком подходе возникает проблема: а какой ранг должен получить следующий сотрудник? Например, если первые два были одинаковые и у них ранги 1, то сотрудник со второй зарплатой в компании должен иметь ранг 2 или 3?
Эпилог
Мы разобрали с вами всего 5 возможных заданий, которые судьба и рекрутеры могут подкинуть вам на собеседовании. Однако, вариантов, на самом деле, масса. И чтобы реально подготовиться к собеседованию, нужно нарешать как можно больше задач, понять и прочувствовать теоретические аспекты и буквально научиться «мыслить на SQL». Именно на это и нацелена программа SQL Interview — так что будем рады помочь вам получить работу мечты!
И, помимо этого, не забывайте: SQL — чисто прикладной инструмент. Чтобы его освоить, нужно практиковаться, практиковаться и практиковаться. Выучить его можно буквально за несколько недель интенсивных занятий, а вот освоить на уровне Senior… порой на это уходят годы.
Хинт для программистов: если зарегистрируетесь на соревнования Huawei Cup, то бесплатно получите доступ к онлайн-школе для участников. Можно прокачаться по разным навыкам и выиграть призы в самом соревновании.
Перейти к регистрации
Источник
5 сайтов для оттачивания навыков написания SQL-запросов
Одним из ключевых навыков при работе с базами данных является умение писать sql-запросы. Мы отобрали 5 лучших сайтов для оттачивания этого навыка.
1. sql-ex и sql-tutorial
Два сайта указаны вместе, так как представляют собой один ресурс. sql-tutorial — это интерактивный онлайн-учебник по изучению SQL, где подробно и структурировано расписана вся необходимая теория, а в конце каждой главы прилагаются уже разобранные упражнения по данной теме с описанием типичных ошибок и способов решения. sql-ex полностью ориентирован на задачи по базам данных. Также стоит отметить возможность приобретения сертификата (платно) и то, что весь материал изложен на русском языке.
2. pgexercises
Как следует из названия, этот сайт является задачником по написанию запросов, используя синтаксис Postgre DB. Упражнения делятся по тематикам. Рассматриваются такие вещи, как рекурсия, строки, использование aggregate функций и join’ов, работа с датами и подзапросами. Для желающих предоставляем ссылку на документацию.
3. SQLBolt
Интерактивный туториал по изучению SQL. Рекомендуется для новичков и тех, кто желает освежить свои знания. Здесь нет типичного деления на практику и теорию, информация подаётся в формате уроков. Уроки состоят из необходимой теории с примерами, а в конце предлагается несколько задач по только что прочитанному материалу. Вводных уроков 18, разбираются такие темы, как ограничения, join’ы, выражения, агрегаты и действия с таблицами и со строками. Однако если вы уже прилично разбираетесь в написании запросов, то, возможно, вам стоит обратить внимание на более «продвинутые» источники.
4. sqlzoo
Указанный ресурс отлично подойдёт для программистов любого уровня. Здесь есть простенькие задачи, разбитые по темам, теоретическая справка по каждому пункту и викторина по выбранной теме. Вся информация излагается лаконично и в доступной форме.
5. hackerrank
Сайт, который исповедует принцип соревновательного программирования. Справки нет, упражнения делятся по темам, сложности и максимальному количеству баллов за безупречное решение задачи. Ресурс всемирный, и предоставляет возможность также посоревноваться в решении задач на C++, Python, Java и PHP. Рекомендуется тем, кто уже неплохо разбирается в базах данных.