Гайды по БД и SQL
Open in Telegram
Владелец, реклама – @Ak_Mihail Купить рекламу на бирже: https://telega.in/channels/learn_bd_sql/card
Show more6 112
Subscribers
No data24 hours
-127 days
-5730 days
Posts Archive
6 111
Задание SQL с реального собеседования
Вводные данные:
Есть таблица анализов 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 анализа.
Формулировка задачи: нарастающим итогом рассчитать, как увеличивалось количество проданных тестов каждый месяц каждого года с разбивкой по группе.
Эта задача среднего уровня: ее можно давать как Middle, так и Junior специалистам. Здесь проверяется базовое понимание оконных функций, джоинов и группировок.
Примечание После того, как вы написали первую версию своего запроса, попробуйте его оптимизировать. Например, в данном примере мы используем CTE — обобщенные табличные выражения.
Гайды по БД и SQL6 111
100+ шпаргалок для аналитиков данных и data scientists
Шпаргалки помогут:
🔹 подготовиться к экзамену
🔹 подготовиться к собеседованию
🔹 в повседневной работе – быстро вспомнить нужную информацию
Гайды по БД и SQL
6 111
Задачи с собеседования
Найти идентификатор с максимальным значением
depname | empno | salary |
-----------+-------+--------+
develop | 11 | 5200 |
develop | 7 | 4200 |
develop | 9 | 4500 |
develop | 8 | 6000 |
develop | 10 | 5200 |
personnel | 5 | 3500 |
personnel | 2 | 3900 |
sales | 3 | 4800 |
sales | 1 | 5000 |
sales | 4 | 4800 |
Задача: написать запрос, чтобы получить empno с самой высокой зарплатой. Убедитесь, что ваше решение обрабатывает случаи одинаковых зарплатами!
Решение:
WITH max_salary AS (
SELECT
MAX(salary) max_salary
FROM
salaries
)
SELECT
s.empno
FROM
salaries s
JOIN
max_salary ms ON s.salary = ms.max_salary
Альтернативное решение с использованием RANK():
WITH sal_rank AS
(SELECT
empno,
RANK() OVER(ORDER BY salary DESC) rnk
FROM
salaries)
SELECT
empno
FROM
sal_rank
WHERE
rnk = 1;
Гайды по БД и SQL6 111
5 рекомендаций по оптимизации запросов SQL
Также как небольшие улучшения повышают качество запросов, так и мелкие некорректные навыки могут снизить качество и понятность кода в долгосрочной перспективе. Следовательно, пора избавиться от непродуктивных навыков SQL, а взамен сформировать новые и эффективные. Этим мы сейчас и займемся.
⤷ Ссылка на статью
Гайды по БД и SQL
6 111
Как работать с GreenPlum через командную строку
Многие сталкивались с проблемами в работе инструментов для управления базами данных. То графический интерфейс долго загружается, то зависает в самый ненужный момент, или просто нет нормальной возможности выгрузить результат в файл. Основные проблемы связаны с нагромождением дополнительного функционала, который в большинстве случаев не нужен.
⤷ Читать дальше
Гайды по БД и SQL
6 111
Работаем с данными. Кто кого: Pandas VS SQL
Еще порядка 10 лет назад для работы по исследованию данных было достаточно SQL, как инструмента для выборки данных и формирования отчетов по ним. Но время не стоит на месте, и примерно в 2012 году стала стремительно набирать популярность Python-библиотека Pandas. И вот сегодня уже сложно представить работу Data Scientist’а без данного модуля.
Не буду подробно углубляться в то, что предоставляют из себя оба инструмента ввиду их популярности среди аналитиков и исследователей данных, но небольшую справку все-таки оставлю...
⤷ Читать дальше
Гайды по БД и SQL
6 111
Оконные функции в SQL — что это и зачем они нужны
Многие разработчики, даже давно знакомые с SQL, не понимают оконные функции, считая их какой-то особой магией для избранных. И, хотя реализация оконных функций поддерживается с SQL Server 2005, кто-то до сих пор «копипастит» их со StackOverflow, не вдаваясь в детали. Этой статьёй мы попытаемся развенчать миф о неприступности этой функциональности SQL и покажем несколько примеров работы оконных функций на реальном датасете.
⤷ Ссылка на статью
Гайды по БД и SQL
6 111
Вопрос с собеседования Twitter
Найдите сотрудника с самой высокой зарплатой в каждом отделе. Выведите название отдела, имя сотрудника и соответствующую зарплату.
employee
id:int
first_name:varchar
last_name:varchar
age:int
sex:varchar
employee_title:varchar
department:varchar
salary:int
target:int
bonus:int
email:varchar
city:varchar
address:varchar
manager_id:int
ОТВЕТ:
SELECT department as department,
first_name as employee_name,
salary
FROM employee
WHERE (department, salary) IN
(SELECT department, MAX(salary)
FROM employee
GROUP BY department)
Гайды по БД и SQL6 111
Airtable: рецепт молниеносного создания баз данных и таблиц
Airtable представляет собой платформу из разряда low-code, т.е. практически не требует написания программного кода. Она позволяет любому создавать реляционные базы и визуализировать данные, не требуя для этого даже знания SQL и Excel.
Подумайте, сколько времени вы бы потратили на выполнение следующего задания...
⤷ Читать дальше
Гайды по БД и SQL
6 111
Большая шпаргалка по MySQL(mysql, mariadb,tool)
Мы подготовили для вас шикарный конспект с подсказками и фишками, которые значительно прокачают вашу работу с данной СУБД.
⤷ Ссылка на шпаргалку
Гайды по БД и SQL
6 111
Вопрос: Что вы понимаете под патчами и исправлениями в SQL Server?
Ответ:
Патч - это программа, используемая для исправления определенных проблем в системе и обеспечения такой же безопасности. Исправления - это проприетарные исправления, выпущенные Microsoft. Они предназначены для решения различных проблем, в основном недавно обнаруженных недостатков безопасности.
Исправления проактивно реагируют на ошибки. Это потому, что они предназначены для применения к живым системам. Исправление может быть одним или несколькими файлами.
Гайды по БД и SQL
6 111
👉 Турция никого не ждёт, даже айтишников.
👉 Канада даст вам полугодовую визу, чтобы вы искали работу в стране.
👉 Работа на госкомпанию закроет перед тобой многие двери за границей.
👉 А ещё есть цифровая виза без требований к доходам.
Не знал?
Мы — команда айтишников GeeckoMove и сейчас наша команда работает из самых разных стран. Мы не понаслышке знаем, где айтишникам хорошо, а куда — не стоит и соваться.
Даже если ты ещё учишься или работаешь на позиции джуна, но хочешь работать удалённо или переехать в комфортную страну, подписывайся на наш канал!
Ведь нужно заранее знать, куда лучше ехать, как к этому подготовиться и чего ждать от новой страны.
У нас:
👾 самая свежая информация о визах и релокейте от специалистов, МИДа и консульств;
👾 сообщество айтишников разных уровней из разных стран;
👾 вакансии удалённой работы или с релокацией;
👾 и многое другое!
>> Подписывайся, пока не потерял!
6 111
Подборка ресурсов, где можно выучить\подтянуть знания SQL
⏩ https://mode.com/sql-tutorial/ много бесплатных уроков для начинающих, идущих по нарастающей
⏩ https://www.kaggle.com/learn/intro-to-sql
https://www.kaggle.com/learn/advanced-sql короткие уроки от kaggle вводящие в курс дела, подойдут для повторения основ
⏩ https://www.sql-ex.ru/ лучший тренажер по SQL, решайте парочку задач в день и никакие задания на интервью не будут вам страшны
⏩ https://stepik.org/course/63054/promo
https://www.sqlhabit.com
https://sqlzoo.net/ еще несколько тренажеров с задачками для прокачивания практических навыков
⏩ https://stepik.org/course/70710/promo#toc для тех кто уже знает основы и базу и хочет развить знания еще больше.
Гайды по БД и SQL
6 111
Основы SQL (видеокурс)
🔹 Введение
🔹 Нормализация
🔹 Редактирование таблиц
🔹 Триггеры
🔹 Транзакции
Гайды по БД и SQL
6 111
Вопрос с собеседования Amazon
Напишите запрос, который будет идентифицировать возвращающихся активных пользователей. Вернувшийся активный пользователь — это пользователь, совершивший вторую покупку в течение 7 дней после любой другой покупки. Выведите список user_id этих вернувшихся активных пользователей.
amazon_transactions
id:int
user_id:int
item:varchar
created_at:datetime
revenue:int
Ответ:
SELECT
DISTINCT(a.user_id)
FROM amazon_transactions a
JOIN amazon_transactions b
ON a.user_id = b.user_id
WHERE a.created_at - b.created_at BETWEEN 0 AND 7
AND a.id != b.id
Гайды по БД и SQL6 111
5 бесплатных сервисов для практики SQL
Когда вы только начинаете изучать SQL, нужно как можно больше практики. Хорошо, когда есть реальные задачи на работе, на которых можно практиковаться. Но если их нет - то эти бесплатные сервисы помогут получить необходимую практику и улучшить свой уровень.
Кстати, в телеграм канале у меня был пост о том, как выучить SQL быстрее.
⤷ Ссылка на статью
Гайды по БД и SQL
6 111
27 распространённых вопросов по SQL с собеседований и ответы на них
Вопросы по SQL на собеседованиях — обычное дело, и чтобы не завалиться, нужно хорошо понимать, как работать с базами данных. В этом списке представлены основные вопросы и задачи по SQL, которые часто встречаются на собеседованиях, а также ответы на них.
⤷ Ссылка на статью
Гайды по БД и SQL
6 111
Руководство по стилю SQL · SQL Style Guide
Рекомендации, описанные в этом руководстве, во многом пересекаются с описанными в книге Джо Селко «Стиль программирования Джо Селко на SQL» (оригинал: SQL Programming Style). Это, в частности, найдут полезным те, кто уже знаком с этой книгой. Тем не менее автор этого руководства в некоторых аспектах более категоричен, нежели Джо Селко, а в других, напротив, более гибок. И, конечно, нельзя не отметить, что это руководство значительно короче и лаконичнее книги Селко — здесь вы не встретите ни весёлых историй из жизни, наглядно объясняющих, как и почему лучше не делать, ни длинных повествований, мотивирующих на использование той или иной рекомендации.
⤷ Ссылка на статью
Гайды по БД и SQL
6 111
Новая схема SQL Join-ов
Учу SQL и понимаю, что схема Join-ов основанная на пересекающихся кругах не корректна. Результатом джойнов всегда идет увеличение таблицы в ширь. А по схеме с кругами площадь кругов почти везде не увеличивается. И также круговая схема не показывает заполнение NULL-ами при LEFT и RIGHT джойнах. Предлагаю схему на прямоугольниках, где закрашенный красный это результирующая таблица джойнов, черный это заполнение NULL-ами. Серые прямоугольники оставлены просто для наглядности и ничего не означают.
⤷ Ссылка на статью
Гайды по БД и SQL
