Алоха, коллеги! Запускаем рубрику #fromInterviewWithLove!
Сегодня будет дана задача по SQL для начинающих специалистов.
Задача: В базе данных хранятся данные о продажах продуктов в разных магазинах. Необходимо вывести список магазинов, в которых были проданы все виды товаров. Таблица sales содержит следующие поля:
- id - уникальный идентификатор продажи;
- store - название магазина;
- product - название продукта.
Решение SQL запросом:
SELECT store
FROM sales
GROUP BY store
HAVING COUNT(DISTINCT product) = (SELECT COUNT(DISTINCT product) FROM sales);
Данный запрос группирует данные по названию магазина и находит количество уникальных продуктов, проданных в каждом магазине. Затем он сравнивает это количество с общим числом уникальных продуктов в таблице sales. Если количество уникальных продуктов в магазине равно общему количеству уникальных продуктов в таблице, значит все продукты были проданы в данном магазине. Результат запроса - список магазинов, в которых были проданы все виды товаров.
SQLpedia
Сегодня будет дана задача по SQL для начинающих специалистов.
Задача: В базе данных хранятся данные о продажах продуктов в разных магазинах. Необходимо вывести список магазинов, в которых были проданы все виды товаров. Таблица sales содержит следующие поля:
- id - уникальный идентификатор продажи;
- store - название магазина;
- product - название продукта.
Решение SQL запросом:
FROM sales
GROUP BY store
HAVING COUNT(DISTINCT product) = (SELECT COUNT(DISTINCT product) FROM sales);
Данный запрос группирует данные по названию магазина и находит количество уникальных продуктов, проданных в каждом магазине. Затем он сравнивает это количество с общим числом уникальных продуктов в таблице sales. Если количество уникальных продуктов в магазине равно общему количеству уникальных продуктов в таблице, значит все продукты были проданы в данном магазине. Результат запроса - список магазинов, в которых были проданы все виды товаров.
SQLpedia
👍34😱9❤6😢2
Алоха, коллеги! Продолжаем рубрику #fromInterviewWithLove. На этот раз нужно решить задачу повышенной сложности.
В базе данных есть таблица "orders" с полями "id" (уникальный идентификатор заказа), "customer_id" (уникальный идентификатор клиента, который сделал заказ), "total_price" (общая стоимость заказа) и "created_at" (дата создания заказа). Необходимо найти все заказы, сделанные клиентом, сумма которых превышает среднюю сумму заказов всех клиентов. Результат должен быть отсортирован по дате создания заказа в порядке убывания.
Решение:
SELECT orders.id , orders.total_price, orders.created_at
FROM orders
WHERE orders.customer_id IN (
SELECT customer_id
FROM orders
GROUP BY customer_id
HAVING AVG(total_price) < (
SELECT AVG(total_price)
FROM orders
)
)
ORDER BY orders.created_at DESC;
SQLpedia
В базе данных есть таблица "orders" с полями "id" (уникальный идентификатор заказа), "customer_id" (уникальный идентификатор клиента, который сделал заказ), "total_price" (общая стоимость заказа) и "created_at" (дата создания заказа). Необходимо найти все заказы, сделанные клиентом, сумма которых превышает среднюю сумму заказов всех клиентов. Результат должен быть отсортирован по дате создания заказа в порядке убывания.
Решение:
FROM orders
WHERE orders.customer_id IN (
SELECT customer_id
FROM orders
GROUP BY customer_id
HAVING AVG(total_price) < (
SELECT AVG(total_price)
FROM orders
)
)
ORDER BY orders.created_at DESC;
SQLpedia
🔥14👍6😢6😱2
Алоха, коллеги!
Сегодня вопрос из рубрики #fromInterviewWithLove
Дана таблица "Студенты" с полями "Имя", "Фамилия", "Возраст" и "Группа". Необходимо вывести список уникальных групп студентов и количество студентов в каждой группе, отсортированный по возрастанию названия группы.
Для решения этой задачи нужно написать следующий SQL-запрос:
SELECT Группа, COUNT(*) AS Количество_студентов
FROM Студенты
GROUP BY Группа
ORDER BY Группа ASC;
Этот запрос выбирает из таблицы "Студенты" уникальные группы студентов и вычисляет количество студентов в каждой группе. Затем он сортирует результат по возрастанию названия группы. Результатом запроса будет список уникальных групп студентов с количеством студентов в каждой группе.
Небольшая подсказка для новичков👇
Нужно понимать, как работать с агрегатными функциями, такими как COUNT, и как использовать оператор DISTINCT для выбора уникальных значений.
Сегодня вопрос из рубрики #fromInterviewWithLove
Дана таблица "Студенты" с полями "Имя", "Фамилия", "Возраст" и "Группа". Необходимо вывести список уникальных групп студентов и количество студентов в каждой группе, отсортированный по возрастанию названия группы.
Для решения этой задачи нужно написать следующий SQL-запрос:
FROM Студенты
GROUP BY Группа
ORDER BY Группа ASC;
Этот запрос выбирает из таблицы "Студенты" уникальные группы студентов и вычисляет количество студентов в каждой группе. Затем он сортирует результат по возрастанию названия группы. Результатом запроса будет список уникальных групп студентов с количеством студентов в каждой группе.
Нужно понимать, как работать с агрегатными функциями, такими как COUNT, и как использовать оператор DISTINCT для выбора уникальных значений.
🔥6😱5😁2🤩2👍1
Алоха, коллеги!
Сегодня дадим вам задачу на логику из нашей рубрики #fromInterviewWithLove
Представьте себе замкнутую по окружности железную дорогу. По ней едет поезд, последний вагон которого скреплён с первым так, что внутри можно свободно перемещаться между вагонами. Вы оказались в одном случайном вагоне и ваша задача — подсчитать их общее количество. В каждом вагоне можно включать или выключать свет, но начальное положение переключателей случайное и заранее неизвестно.
Все вагоны внутри выглядят строго одинаково, окна закрыты так, что невозможно посмотреть наружу, движение поезда равномерное. Помечать вагоны как-либо, кроме включения или выключения света, нельзя. Количество вагонов конечно.
В этой задаче есть 2 решения:
Решение 1
Вам нужно включить свет в начальном вагоне, в котором вы находитесь, если он ещё не горит. Затем пойти в одну любую сторону до тех пор, пока не встретите вагон с работающим освещением, при этом обязательно считать пройденные вагоны. Выключаете в найденном вагоне свет и идёте обратно к начальному. Если в нём свет всё ещё горит, то повторяете операцию. Если же нет, значит вы прошли полный круг и знаете ответ.
Решение2
С таким же успехом можно, например, ходить по сторонам от начального вагона на равные расстояния, постепенно их увеличивая, и инвертировать в них свет. То есть если считать, что сначала вы в вагоне с номером 0, то ходить надо в -1, 1, -2, 2, -3, 3 и так далее. Если при этом запоминать состояние самого дальнего вагона, то при повторном прохождении мимо него вы заметите изменившийся свет, если круг замкнётся. А зная длину пути в обе стороны, вы легко вычислите общее количество вагонов.
SQLpedia
Сегодня дадим вам задачу на логику из нашей рубрики #fromInterviewWithLove
Представьте себе замкнутую по окружности железную дорогу. По ней едет поезд, последний вагон которого скреплён с первым так, что внутри можно свободно перемещаться между вагонами. Вы оказались в одном случайном вагоне и ваша задача — подсчитать их общее количество. В каждом вагоне можно включать или выключать свет, но начальное положение переключателей случайное и заранее неизвестно.
Все вагоны внутри выглядят строго одинаково, окна закрыты так, что невозможно посмотреть наружу, движение поезда равномерное. Помечать вагоны как-либо, кроме включения или выключения света, нельзя. Количество вагонов конечно.
В этой задаче есть 2 решения:
Вам нужно включить свет в начальном вагоне, в котором вы находитесь, если он ещё не горит. Затем пойти в одну любую сторону до тех пор, пока не встретите вагон с работающим освещением, при этом обязательно считать пройденные вагоны. Выключаете в найденном вагоне свет и идёте обратно к начальному. Если в нём свет всё ещё горит, то повторяете операцию. Если же нет, значит вы прошли полный круг и знаете ответ.
Решение2
С таким же успехом можно, например, ходить по сторонам от начального вагона на равные расстояния, постепенно их увеличивая, и инвертировать в них свет. То есть если считать, что сначала вы в вагоне с номером 0, то ходить надо в -1, 1, -2, 2, -3, 3 и так далее. Если при этом запоминать состояние самого дальнего вагона, то при повторном прохождении мимо него вы заметите изменившийся свет, если круг замкнётся. А зная длину пути в обе стороны, вы легко вычислите общее количество вагонов.
SQLpedia
🔥8❤3
Forwarded from BApedia | Бизнес-анализ
Алоха, коллеги!
Сегодня дадим вам задачу на логику из нашей рубрики #fromInterviewWithLove
Представьте себе замкнутую по окружности железную дорогу. По ней едет поезд, последний вагон которого скреплён с первым так, что внутри можно свободно перемещаться между вагонами. Вы оказались в одном случайном вагоне и ваша задача — подсчитать их общее количество. В каждом вагоне можно включать или выключать свет, но начальное положение переключателей случайное и заранее неизвестно.
Все вагоны внутри выглядят строго одинаково, окна закрыты так, что невозможно посмотреть наружу, движение поезда равномерное. Помечать вагоны как-либо, кроме включения или выключения света, нельзя. Количество вагонов конечно.
В этой задаче есть 2 решения:
Решение 1
Вам нужно включить свет в начальном вагоне, в котором вы находитесь, если он ещё не горит. Затем пойти в одну любую сторону до тех пор, пока не встретите вагон с работающим освещением, при этом обязательно считать пройденные вагоны. Выключаете в найденном вагоне свет и идёте обратно к начальному. Если в нём свет всё ещё горит, то повторяете операцию. Если же нет, значит вы прошли полный круг и знаете ответ.
Решение2
С таким же успехом можно, например, ходить по сторонам от начального вагона на равные расстояния, постепенно их увеличивая, и инвертировать в них свет. То есть если считать, что сначала вы в вагоне с номером 0, то ходить надо в -1, 1, -2, 2, -3, 3 и так далее. Если при этом запоминать состояние самого дальнего вагона, то при повторном прохождении мимо него вы заметите изменившийся свет, если круг замкнётся. А зная длину пути в обе стороны, вы легко вычислите общее количество вагонов.
BApedia
Сегодня дадим вам задачу на логику из нашей рубрики #fromInterviewWithLove
Представьте себе замкнутую по окружности железную дорогу. По ней едет поезд, последний вагон которого скреплён с первым так, что внутри можно свободно перемещаться между вагонами. Вы оказались в одном случайном вагоне и ваша задача — подсчитать их общее количество. В каждом вагоне можно включать или выключать свет, но начальное положение переключателей случайное и заранее неизвестно.
Все вагоны внутри выглядят строго одинаково, окна закрыты так, что невозможно посмотреть наружу, движение поезда равномерное. Помечать вагоны как-либо, кроме включения или выключения света, нельзя. Количество вагонов конечно.
В этой задаче есть 2 решения:
Вам нужно включить свет в начальном вагоне, в котором вы находитесь, если он ещё не горит. Затем пойти в одну любую сторону до тех пор, пока не встретите вагон с работающим освещением, при этом обязательно считать пройденные вагоны. Выключаете в найденном вагоне свет и идёте обратно к начальному. Если в нём свет всё ещё горит, то повторяете операцию. Если же нет, значит вы прошли полный круг и знаете ответ.
Решение2
С таким же успехом можно, например, ходить по сторонам от начального вагона на равные расстояния, постепенно их увеличивая, и инвертировать в них свет. То есть если считать, что сначала вы в вагоне с номером 0, то ходить надо в -1, 1, -2, 2, -3, 3 и так далее. Если при этом запоминать состояние самого дальнего вагона, то при повторном прохождении мимо него вы заметите изменившийся свет, если круг замкнётся. А зная длину пути в обе стороны, вы легко вычислите общее количество вагонов.
BApedia
👍9🔥1