sql_skill_test

Тест SQL онлайн. Проверь запросы на PostgreSQL.

8 вопросов по выборкам, JOIN, NULL, агрегатам и оконным функциям. Выбери сложность и сразу узнай результат — без регистрации.

Доступные темы

  • Python
  • JavaScript
  • Linux
  • DevOps
  • Web
  • Networking
  • Git
  • SQL
skill-test.config

настройка теста

Настрой свой тест

8 вопросов по выборкам, JOIN, NULL, агрегатам и оконным функциям. Выбери сложность и сразу узнай результат — без регистрации.

Тема

Загружаем темы...

Сложность
Вопросов
8
На вопрос
35-60 сек
Проходной балл
75%
Вопросов: 8 Проходной балл: 75%

что проверяем

Что проверяет тест по SQL

В банке 90 вопросов: 30 лёгких, 30 средних и 30 сложных. В одну попытку попадают 8 вопросов выбранного уровня.

демо

Примеры вопросов по SQL

Два вопроса из действующего банка показывают формат теста. Правильные ответы и объяснения откроются после регистрации и сохранения полной попытки.

sql-medium-003.sql

Средне joins · nulls

Почему этот запрос ведёт себя как INNER JOIN и теряет клиентов без оплаченных заказов?

SELECT c.name, o.id
FROM customers c
LEFT JOIN orders o ON o.customer_id = c.id
WHERE o.status = 'paid';
  1. LEFT JOIN не работает, если в ON указана колонка правой таблицы
  2. У клиента без заказов o.status равен NULL, а условие NULL = 'paid' не проходит фильтр WHERE
  3. PostgreSQL автоматически заменяет LEFT JOIN на INNER JOIN, если есть WHERE
  4. Нужно писать LEFT OUTER JOIN: без слова OUTER соединение внутреннее
sql-hard-001.sql

Сложно windows

Суммы заказов: 300, 200, 200, 100. Что вернут три оконные функции для этих строк (в порядке убывания суммы)?

SELECT amount,
       row_number() OVER (ORDER BY amount DESC) AS rn,
       rank()       OVER (ORDER BY amount DESC) AS rnk,
       dense_rank() OVER (ORDER BY amount DESC) AS dr
FROM orders;
  1. rn: 1,2,2,3 · rnk: 1,2,2,4 · dr: 1,2,3,4
  2. rn: 1,2,3,4 · rnk: 1,2,3,4 · dr: 1,2,2,3
  3. rn: 1,2,3,4 · rnk: 1,2,2,4 · dr: 1,2,2,3
  4. rn: 1,2,2,4 · rnk: 1,2,2,3 · dr: 1,2,3,4

результат

Что означает результат

Лёгкий уровень проверяет чтение выборок и фильтров, средний — JOIN, агрегаты, даты и подзапросы, сложный — оконные функции, логический порядок выполнения и индексируемость условий. Порог — 6 из 8.

faq.md

Частые вопросы

Нужна ли регистрация, чтобы пройти тест?
Нет. Тест стартует по клику, ответы уходят анонимно, результат виден сразу на той же странице. Аккаунт нужен только если хочешь сохранить попытку: со страницы итогов заводишь его в один шаг, и результат подтягивается сам.
Сколько времени это займёт?
От пяти до восьми минут. В попытке 8 вопросов, а таймер зависит от сложности: 35 секунд на вопрос на лёгком уровне, 45 на среднем, 60 на сложном.
Какой результат считается пройденным?
75% — это 6 правильных ответов из 8. Балл и статус видно сразу и без аккаунта. Правильные ответы с объяснениями открываются после регистрации, вместе с сохранённой попыткой и бейджем в профиле.
Можно переиграть ответ или поставить таймер на паузу?
Нет. Ответ фиксируется в момент выбора, таймер не останавливается до конца вопроса. Так тест меряет то, что ты знаешь сейчас, а не то, что успел найти в соседней вкладке.
Какой диалект SQL используется в тесте?
PostgreSQL. В банке встречаются ILIKE, DISTINCT ON, date_trunc, особенности целочисленного деления, поведения NULL, CTE и B-tree индексов.