Горизонтальные или вертикальные столбцы: что выбрать?
Оба варианта помогают сравнивать категории, но ориентация влияет на читаемость.
• Горизонтальные столбцы удобны, когда категорий много или у них длинные названия.
• Вертикальные столбцы подходят для небольшого количества категорий, которые нужно быстро сравнить между собой.
👉 @SQLPortal
Оба варианта помогают сравнивать категории, но ориентация влияет на читаемость.
• Горизонтальные столбцы удобны, когда категорий много или у них длинные названия.
• Вертикальные столбцы подходят для небольшого количества категорий, которые нужно быстро сравнить между собой.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2👍2
Какие навыки нужны дата-инженеру?
В вакансиях прослеживается закономерность: на первом месте SQL и Python, дальше — облачные платформы, Spark, хранилища данных, оркестрация пайплайнов, потоковая обработка, Git, контейнеры и инструменты для работы с большими данными.
👉 @SQLPortal
В вакансиях прослеживается закономерность: на первом месте SQL и Python, дальше — облачные платформы, Spark, хранилища данных, оркестрация пайплайнов, потоковая обработка, Git, контейнеры и инструменты для работы с большими данными.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3👍1
SQL: порядок написания ≠ порядок обработки
Запрос начинается с
Понимание этой последовательности помогает разобраться, почему алиас из
Важно: это логический порядок, а физический план выполнения выбирает оптимизатор СУБД.
👉 @SQLPortal
Запрос начинается с
SELECT, но логически обрабатывается в другом порядке:FROM / JOIN → WHERE → GROUP BY → HAVING → SELECT → DISTINCT → ORDER BY → LIMITПонимание этой последовательности помогает разобраться, почему алиас из
SELECT обычно недоступен в WHERE, а фильтрация результатов агрегации выполняется через HAVING.Важно: это логический порядок, а физический план выполнения выбирает оптимизатор СУБД.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3
Чтобы запросы оставались быстрыми, понятными и справлялись с ростом объёма данных, нужны хорошие привычки при их написании.
Вот 15 принципов, которые стоит применять на практике:
1. Избегайте
2. Отфильтровывайте ненужные строки с помощью
3. Понимайте разницу между
4. Используйте CTE вместо громоздких подзапросов для улучшения читаемости.
5. Не маскируйте ошибки логики лишним
6. Используйте
7. Освойте оконные функции для сложных расчётов.
8. Согласовывайте типы данных, чтобы избежать неявных преобразований.
9. Сравнивайте планы для
10. Убирайте
11. Используйте
12. Учитывайте, что функции над индексированными столбцами могут мешать использованию обычного индекса.
13. Используйте
14. Изучайте план выполнения через
15. Проверяйте корректность на небольших наборах данных, а производительность — на объёмах, близких к реальным.
👉 @SQLPortal
Вот 15 принципов, которые стоит применять на практике:
1. Избегайте
SELECT *: выбирайте только нужные столбцы.2. Отфильтровывайте ненужные строки с помощью
WHERE.3. Понимайте разницу между
INNER JOIN и LEFT JOIN.4. Используйте CTE вместо громоздких подзапросов для улучшения читаемости.
5. Не маскируйте ошибки логики лишним
DISTINCT.6. Используйте
UNION ALL, если удалять дубликаты не требуется.7. Освойте оконные функции для сложных расчётов.
8. Согласовывайте типы данных, чтобы избежать неявных преобразований.
9. Сравнивайте планы для
EXISTS и IN: первый не всегда быстрее.10. Убирайте
ORDER BY, если сортировка не нужна.11. Используйте
CROSS JOIN только когда действительно нужно декартово произведение.12. Учитывайте, что функции над индексированными столбцами могут мешать использованию обычного индекса.
13. Используйте
CASE для понятной условной логики.14. Изучайте план выполнения через
EXPLAIN; помните, что EXPLAIN ANALYZE действительно выполняет запрос.15. Проверяйте корректность на небольших наборах данных, а производительность — на объёмах, близких к реальным.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Pandas: Python для повседневных задач аналитика 🐼
Загрузить файлы с неаккуратными данными, изучить их структуру, очистить столбцы, сгруппировать результаты и объединить наборы данных — всё это можно сделать с Pandas.
Библиотека помогает подготовить данные для отчётов и машинного обучения, а также получить первые аналитические выводы.
👉 @SQLPortal
Загрузить файлы с неаккуратными данными, изучить их структуру, очистить столбцы, сгруппировать результаты и объединить наборы данных — всё это можно сделать с Pandas.
Библиотека помогает подготовить данные для отчётов и машинного обучения, а также получить первые аналитические выводы.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3👍1
Команды SQL проще запомнить по назначению
• DDL — создание и изменение структуры БД:
• DML — добавление, изменение и удаление данных:
• DCL — управление правами доступа:
• TCL — управление транзакциями:
• DQL — получение данных:
В некоторых классификациях
👉 @SQLPortal
• DDL — создание и изменение структуры БД:
CREATE, ALTER, DROP.• DML — добавление, изменение и удаление данных:
INSERT, UPDATE, DELETE.• DCL — управление правами доступа:
GRANT, REVOKE.• TCL — управление транзакциями:
COMMIT, ROLLBACK, SAVEPOINT.• DQL — получение данных:
SELECT.В некоторых классификациях
SELECT относят к DML, не выделяя DQL отдельно.Please open Telegram to view this post
VIEW IN TELEGRAM
❤4
SQL помогает получить данные. Статистика — понять, что они означают
20 статистических понятий для работы с отчётами, метриками и аналитическими запросами.
👉 @SQLPortal
20 статистических понятий для работы с отчётами, метриками и аналитическими запросами.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4🔥1
Быстрый SQL начинается с продуманных запросов
1. Выбирайте только нужные столбцы. Вместо
2. Создавайте подходящие индексы. Учитывайте столбцы, используемые в
3. Избегайте функций над индексируемыми столбцами в условиях. Вместо
4. Используйте
5. Ограничивайте выдачу через
6. Сравнивайте
7. Отсекайте ненужные строки через
8. Не используйте
9. Выбирайте
10. Анализируйте планы выполнения. Используйте
👉 @SQLPortal
1. Выбирайте только нужные столбцы. Вместо
SELECT * перечисляйте поля: это уменьшает объём передаваемых данных.2. Создавайте подходящие индексы. Учитывайте столбцы, используемые в
WHERE, JOIN и ORDER BY.3. Избегайте функций над индексируемыми столбцами в условиях. Вместо
YEAR(date) = 2024 используйте диапазон дат — он может позволить использовать обычный индекс.4. Используйте
EXISTS для проверки существования строк. Но не считайте его всегда быстрее IN: сравнивайте планы выполнения.5. Ограничивайте выдачу через
LIMIT или TOP. Это сокращает результат, но не обязательно объём работы базы данных.6. Сравнивайте
JOIN и подзапросы. Выбирайте вариант с нужной семантикой и лучшим планом: объединение не всегда быстрее и может размножать строки.7. Отсекайте ненужные строки через
WHERE. Чем меньше данных обрабатывается дальше, тем лучше; фактический порядок операций определяет оптимизатор.8. Не используйте
DISTINCT без необходимости. Удаление дубликатов требует ресурсов. Проверьте, не возникают ли они из-за ошибочного объединения.9. Выбирайте
UNION ALL, если удалять дубликаты не нужно. В отличие от UNION, он сохраняет все строки и не тратит ресурсы на устранение повторов.10. Анализируйте планы выполнения. Используйте
EXPLAIN и, где доступно, EXPLAIN ANALYZE, чтобы находить узкие места. Помните: EXPLAIN ANALYZE действительно выполняет запрос.Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
Числовые функции SQL: от округления до итогов 🔢
Они помогают обрабатывать числа и выполнять вычисления:
•
•
•
•
•
Агрегатные функции обобщают данные:
👉 @SQLPortal
Они помогают обрабатывать числа и выполнять вычисления:
•
ROUND — округлить до нужного количества знаков.•
CEIL / CEILING и FLOOR — округлить вверх или вниз до целого.•
ABS — получить модуль числа.•
MOD или % — найти остаток от деления.•
POWER — возвести число в степень.Агрегатные функции обобщают данные:
AVG вычисляет среднее, SUM — сумму, MIN и MAX — минимальное и максимальное значения. Названия и синтаксис отдельных функций зависят от СУБД.Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Дубликаты в SQL: способ зависит от задачи
•
•
•
Убрать повторы из выдачи и удалить записи из таблицы — разные задачи. Перед
👉 @SQLPortal
•
DISTINCT убирает повторяющиеся сочетания выбранных столбцов из результата запроса.•
GROUP BY объединяет строки в группы и позволяет посчитать повторы через COUNT(*).•
ROW_NUMBER() нумерует строки внутри группы, чтобы выбрать, какую запись оставить.Убрать повторы из выдачи и удалить записи из таблицы — разные задачи. Перед
DELETE проверьте выборку удаляемых строк и сделайте резервную копию.Please open Telegram to view this post
VIEW IN TELEGRAM
❤3
Git пригодится и тем, кто пишет SQL
Храните запросы, миграции и схемы БД в репозитории: так проще отслеживать изменения, возвращаться к предыдущим версиям и обсуждать правки с командой.
В шпаргалке — базовые команды: создание репозитория, коммиты, ветки, слияние,
👉 @SQLPortal
Храните запросы, миграции и схемы БД в репозитории: так проще отслеживать изменения, возвращаться к предыдущим версиям и обсуждать правки с командой.
В шпаргалке — базовые команды: создание репозитория, коммиты, ветки, слияние,
stash и работа с удалённым репозиторием. Сохраните для работы над SQL-проектами.Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3❤2
SQL проще изучать, если разделить его по задачам
• Определять структуру таблиц:
• Получать данные:
• Добавлять, изменять и удалять записи:
• Управлять доступом:
• Управлять транзакциями:
• Объединять таблицы:
Считать итоги:
Начните с конкретной задачи — так проще понять, какие конструкции нужны и как они работают вместе.
👉 @SQLPortal
• Определять структуру таблиц:
CREATE, ALTER, DROP.• Получать данные:
SELECT, WHERE, ORDER BY.• Добавлять, изменять и удалять записи:
INSERT, UPDATE, DELETE.• Управлять доступом:
GRANT, REVOKE.• Управлять транзакциями:
BEGIN, COMMIT, ROLLBACK.• Объединять таблицы:
JOIN.Считать итоги:
GROUP BY, COUNT, SUM, AVG, MIN, MAX.Начните с конкретной задачи — так проще понять, какие конструкции нужны и как они работают вместе.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
Практические уроки для Backend, Data Engineering и DevOps
Площадка с пошаговыми туториалами и облачными окружениями. Изучаем теорию и сразу выполняем команды без настройки локальной среды. В каталоге PostgreSQL, Redis, Docker, Kubernetes, Airflow, Spark и ClickHouse.
https://prepare.sh/
👉 @SQLPortal
Площадка с пошаговыми туториалами и облачными окружениями. Изучаем теорию и сразу выполняем команды без настройки локальной среды. В каталоге PostgreSQL, Redis, Docker, Kubernetes, Airflow, Spark и ClickHouse.
https://prepare.sh/
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4
Масштабирование базы данных: 6 подходов, которые стоит знать
Рост данных и трафика требует разных решений. Прежде чем масштабировать базу, определите, что ограничивает производительность: CPU, память, диски, запросы или количество соединений.
• Вертикальное масштабирование — добавить серверу CPU, RAM и более быстрые диски.
• Реплики для чтения — распределить запросы на чтение между копиями базы, учитывая задержку репликации.
• Шардинг — распределить данные между несколькими узлами.
• Партиционирование — разделить большую таблицу на части, чтобы упростить обслуживание и ускорить подходящие запросы.
• Кэширование — сократить повторные обращения к базе.
• Пул соединений — переиспользовать подключения и ограничивать их количество.
У каждого подхода свои ограничения и цена сложности. Выбирайте по измерениям и характеру нагрузки. Сохраните шпаргалку для работы и подготовки к собеседованию по System Design.
👉 @SQLPortal
Рост данных и трафика требует разных решений. Прежде чем масштабировать базу, определите, что ограничивает производительность: CPU, память, диски, запросы или количество соединений.
• Вертикальное масштабирование — добавить серверу CPU, RAM и более быстрые диски.
• Реплики для чтения — распределить запросы на чтение между копиями базы, учитывая задержку репликации.
• Шардинг — распределить данные между несколькими узлами.
• Партиционирование — разделить большую таблицу на части, чтобы упростить обслуживание и ускорить подходящие запросы.
• Кэширование — сократить повторные обращения к базе.
• Пул соединений — переиспользовать подключения и ограничивать их количество.
У каждого подхода свои ограничения и цена сложности. Выбирайте по измерениям и характеру нагрузки. Сохраните шпаргалку для работы и подготовки к собеседованию по System Design.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4
Excel, Python или SQL: что выбрать для работы с данными?
Задачи часто одинаковые: фильтрация, сортировка, агрегация, обработка пропусков, вычисления и объединение таблиц. Отличаются инструменты и способ решения.
• Excel — для работы с таблицами вручную, формул и быстрого анализа.
• Python с pandas — для автоматизации, сложных преобразований и обработки данных из разных источников.
• SQL — для выборки, объединения и агрегации данных прямо в базе.
Сравните одни и те же операции в трёх инструментах: так проще увидеть общую логику и переносить навыки между ними.
👉 @SQLPortal
Задачи часто одинаковые: фильтрация, сортировка, агрегация, обработка пропусков, вычисления и объединение таблиц. Отличаются инструменты и способ решения.
• Excel — для работы с таблицами вручную, формул и быстрого анализа.
• Python с pandas — для автоматизации, сложных преобразований и обработки данных из разных источников.
• SQL — для выборки, объединения и агрегации данных прямо в базе.
Сравните одни и те же операции в трёх инструментах: так проще увидеть общую логику и переносить навыки между ними.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
Из Excel в Python: знакомые задачи с pandas 🐼
Фильтрация, сортировка, группировка и объединение таблиц — всё, что вы делаете в Excel, можно выполнять и в pandas.
• Фильтры → отбор строк по условиям.
• Сортировка →
• Группировка и итоги →
• Сводные таблицы →
• Поиск соответствий между таблицами →
• Работа с пропусками →
Знакомая логика помогает освоиться, а код позволяет автоматизировать обработку и повторять её на новых данных.
👉 @SQLPortal
Фильтрация, сортировка, группировка и объединение таблиц — всё, что вы делаете в Excel, можно выполнять и в pandas.
• Фильтры → отбор строк по условиям.
• Сортировка →
sort_values().• Группировка и итоги →
groupby() и agg().• Сводные таблицы →
pivot_table().• Поиск соответствий между таблицами →
merge().• Работа с пропусками →
isna(), fillna() и dropna().Знакомая логика помогает освоиться, а код позволяет автоматизировать обработку и повторять её на новых данных.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3🔥2
SQL и DAX: одни данные, разные задачи
• SQL помогает извлекать, фильтровать, объединять и агрегировать данные в базе. Подходит для подготовки наборов данных и расчётов на стороне СУБД.
• DAX используется для вычислений в табличных моделях, например в Power BI. Меры учитывают контекст фильтрации и пересчитываются при выборе срезов и элементов отчёта.
SQL готовит данные, DAX помогает анализировать их интерактивно. Это полезный ориентир, хотя возможности обоих языков шире и частично пересекаются.
👉 @SQLPortal
• SQL помогает извлекать, фильтровать, объединять и агрегировать данные в базе. Подходит для подготовки наборов данных и расчётов на стороне СУБД.
• DAX используется для вычислений в табличных моделях, например в Power BI. Меры учитывают контекст фильтрации и пересчитываются при выборе срезов и элементов отчёта.
SQL готовит данные, DAX помогает анализировать их интерактивно. Это полезный ориентир, хотя возможности обоих языков шире и частично пересекаются.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
SQL начинается с SELECT, но логика запроса — с FROM
Логический порядок обработки запроса:
•
•
•
•
•
•
•
•
Поэтому псевдоним из
Это логический порядок, а не физический план выполнения. Оптимизатор может обрабатывать данные иначе, сохраняя смысл запроса.
👉 @SQLPortal
Логический порядок обработки запроса:
•
FROM / JOIN — определить источники и объединить таблицы.•
WHERE — отфильтровать строки.•
GROUP BY — сформировать группы.•
HAVING — отфильтровать группы.•
SELECT — вычислить выражения и выбрать столбцы.•
DISTINCT — убрать дубликаты, если указан.•
ORDER BY — отсортировать результат.•
LIMIT / OFFSET — ограничить выдачу и пропустить строки.Поэтому псевдоним из
SELECT обычно доступен в ORDER BY, но не в WHERE: на этапе фильтрации он ещё не определён.Это логический порядок, а не физический план выполнения. Оптимизатор может обрабатывать данные иначе, сохраняя смысл запроса.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥3
SQL — это набор взаимосвязанных инструментов для работы с данными.
Запросы, JOIN, фильтрация, группировка, оконные функции, транзакции, управление доступом и структурой БД помогают решать разные части одной задачи.
Когда понимаешь, как они связаны, SQL становится понятной системой, а не набором команд для заучивания.
👉 @SQLPortal
Запросы, JOIN, фильтрация, группировка, оконные функции, транзакции, управление доступом и структурой БД помогают решать разные части одной задачи.
Когда понимаешь, как они связаны, SQL становится понятной системой, а не набором команд для заучивания.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1