SQL задачи
10.1K subscribers
183 photos
133 links
SQL задачи для подготовки к собеседованию.

SQL тесты для проверки знаний.


№ 7065181110


SQL запросы к конкретной Базе данных с решением и разбором

По вопросам рекламы: @anothertechrock
Download Telegram
Задачка по нашей базе данных, которая находится в шапке канала.
Код генерации базы данных и INSERT данных по ссылке ТУТ.

ВОПРОС:
Что делает ограничение PRIMARY KEY (order_id, product_id) в таблице order_detail?

Ответ под спойлером, но если хотите сперва проверить свою догадку, следующим постом опубликуем тест с вариантами ответов.

Правильный ответ 👇

Обеспечивает уникальность комбинации order_id и product_id.

Если вам понравился вопрос - зашарьте его друзьям 👉 SQLQuestions
Please open Telegram to view this post
VIEW IN TELEGRAM
Какой запрос вернет самый дорогой продукт?

1. SELECT MAX(price) FROM product;

2. SELECT TOP 1 price FROM product ORDER BY price ASC;

3. SELECT price FROM product WHERE price = MAX(price);

4. SELECT product_name FROM product WHERE price > ALL;


Схема БД и код для генерации данных находятся в шапке канала.

Для тех, кто предпочитает тесты, опубликуем тест с вариантами ответа в следующем посте.

Если вам понравился вопрос - зашарьте его друзьям 👉 SQLQuestions
Задачка по нашей базе данных, которая находится в шапке канала.
Код генерации базы данных и INSERT данных по ссылке ТУТ.

ВОПРОС:
Какой оператор используется для увеличения цены на 10% у всех товаров категории "Одежда"?

Ответ под спойлером, но если хотите сперва проверить свою догадку, следующим постом опубликуем тест с вариантами ответов.

Правильный ответ 👇

UPDATE product SET price = price * 1.1 WHERE category_id = 3;

Если вам понравился вопрос - зашарьте его друзьям 👉 SQLQuestions
Please open Telegram to view this post
VIEW IN TELEGRAM
👀 Задачка по нашей базе данных, которая находится в шапке канала. Код генерации базы данных и INSERT данных по ссылке ТУТ.

ВОПРОС:
Какой запрос вернёт клиентов, которые не сделали ни одного заказа?

1. SELECT * FROM order_table WHERE customer_id IS NULL;

2. SELECT * FROM customer EXCEPT SELECT * FROM order_table;

3. SELECT * FROM customer c LEFT JOIN order_table o ON c.customer_id = o.customer_id WHERE o.order_id IS NULL;

4. SELECT * FROM customer WHERE order_id IS NULL;


Правильный ответ 👇

SELECT * FROM customer c LEFT JOIN order_table o ON c.customer_id = o.customer_id WHERE o.order_id IS NULL;

Если вам понравился вопрос - зашарьте его друзьям 👉 SQLQuestions
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15
Что делает следующий запрос в MySQL?

SELECT email
FROM customer
WHERE TRIM(email) NOT REGEXP '^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+[.][A-Za-z]{2,}$';


Схема БД и код для генерации данных находятся в шапке канала.

Запрос не выдает число или конкретную категорию. Просто опишите результат своими словами в комментариях. А для тех, кто предпочитает тесты, опубликуем тест с вариантами ответа в следующем посте.

Если вам понравился вопрос - зашарьте его друзьям 👉 SQLQuestions
Напишите запрос, позволяющий переименовать столбец LastName в Surname в таблице «Employees»
Anonymous Quiz
25%
RENAME LastName into Surname FROM Employees
56%
ALTER TABLE Employees CHANGE LastName Surname varchar(50)
19%
ALTER TABLE Surname(LastName) FROM Employees
Задачка по нашей базе данных, которая находится в шапке канала.
Код генерации базы данных и INSERT данных по ссылке ТУТ.

ВОПРОС:
Как выбрать клиентов, у которых возраст больше среднего возраста всех клиентов?

1. SELECT * FROM customer WHERE age > (SELECT AVG(age) FROM customer);

2. SELECT * FROM customer WHERE age > AVG(age);

3. SELECT * FROM customer HAVING age > AVG(age);

4. SELECT * FROM customer WHERE age IN (AVG(age));


Для тех, кто предпочитает тесты, опубликуем тест с вариантами ответа в следующем посте.

Правильный ответ 👇

SELECT * FROM customer WHERE age > (SELECT AVG(age) FROM customer);

Если вам понравился вопрос - зашарьте его друзьям 👉 SQLQuestions
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Что делает следующий запрос?

SELECT c.* FROM customer c
WHERE EXISTS (
SELECT 1 FROM order_table o WHERE o.customer_id = c.customer_id);


Схема БД и код для генерации данных находятся в шапке канала.

Запрос не выдает число или конкретную категорию. Просто опишите результат своими словами в комментариях. А для тех, кто предпочитает тесты, опубликуем тест с вариантами ответа в следующем посте.

Если вам понравился вопрос - зашарьте его друзьям 👉 SQLQuestions
👍2
Задачка по нашей базе данных, которая находится в шапке канала.
Код генерации базы данных и INSERT данных по ссылке ТУТ.

ВОПРОС:
Какой запрос вернёт для каждого заказа и клиента ID предыдущего заказа этого же клиента?

1. SELECT order_id, customer_id, LAG(order_id) OVER (PARTITION BY customer_id ORDER BY order_date) AS prev_order_id FROM order_table;

2. SELECT order_id, customer_id, MAX(order_id) FROM order_table;

3. SELECT order_id, customer_id, order_id-1 AS prev_order_id FROM order_table;

4. SELECT order_id, customer_id, MIN(order_id) OVER () AS prev_order_id FROM order_table;


Правильный ответ 👇

1. SELECT order_id, customer_id, LAG(order_id) OVER (PARTITION BY customer_id ORDER BY order_date) AS prev_order_id FROM order_table;

Если вам понравился вопрос - зашарьте его друзьям 👉 SQLQuestions
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9
Что выведет этот код? ↪️

SELECT category_name, AVG(price) 
FROM category c JOIN product p ON c.category_id = p.category_id
GROUP BY category_name HAVING AVG(price) > 200;


Схема БД и код для генерации данных находятся в шапке канала.

Запрос не выдает число или конкретную категорию. Просто опишите своими словами результат ✏️

Для тех, кто предпочитает тесты, опубликуем тест с вариантами ответа в следующем посте.

Если вам понравился вопрос - зашарьте его друзьям 👉 SQLQuestions
Please open Telegram to view this post
VIEW IN TELEGRAM
Что выведет этот код? ⤵️
SELECT order_id FROM order_table o

JOIN customer c ON o.customer_id = c.customer_id WHERE c.country_code = 'RU'

UNION ALL

SELECT order_id FROM order_detail WHERE product_id IN (SELECT product_id FROM product WHERE category_id = 1);


Схема БД и код для генерации данных находятся в шапке канала

Запрос не выдает число или конкретную категорию. Просто опишите своими словами результат.

Для тех, кто предпочитает тесты, опубликуем тест с вариантами ответа в следующем посте.

Если вам понравился вопрос - зашарьте его друзьям 👉 SQLQuestions
Please open Telegram to view this post
VIEW IN TELEGRAM