14500
Присоединяйтесь к нашему каналу и погрузитесь в мир баз данных Связь: @devmangx РКН: https://clck.ru/3H4Wo3
Золотое правило SQL: Всегда используйте WHERE перед GROUP BY.
Неправильно:
SELECT Department, COUNT(*)
FROM Employees
GROUP BY Department
WHERE Salary > 50000;
WHERE должен идти до GROUP BY.SELECT Department, COUNT(*)
FROM Employees
WHERE Salary > 50000
GROUP BY Department;
WHERE сначала отбирает только нужные строки. Затем GROUP BY группирует уже отфильтрованные данные.FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY
300+ практических задач: подарок тем, кто изучает SQL
Если хотите научиться писать SQL не только по теории, но и на практике, попробуйте SQL Climber.
Платформа предлагает более 300 интерактивных заданий разного уровня сложности от простых SELECT-запросов до более сложных тем с JOIN, агрегатными функциями и подзапросами.
Каждое задание проверяется автоматически, поэтому можно сразу увидеть результат и исправить ошибки. Отличный ресурс для новичков, подготовки к собеседованиям и регулярной практики SQL.
👉 @SQLPortal
НОВОЕ: Durable Functions в PostgreSQL
pg_durable это расширение для PostgreSQL. Состояние рабочего процесса (workflow), очередь, повторные попытки и восстановление хранятся в Postgres, а для обеспечения надёжности, высокой доступности (HA), резервного копирования и восстановления используются встроенные возможности Postgres.
👉 @SQLPortal
Ловите исчерпывающее руководство по подготовке к SQL собеседованию
Если впереди SQL-собес и руки уже холодеют от волнения — не парься! В этом гайде собраны топовые вопросы, разборы и лайфхаки, которые помогут уверенно писать запросы и понимать, что от тебя хотят рекрутеры
Всё по полочкам и максимально доступно 📚
👉 @SQLPortal
SQL-совет, который должен знать каждый новичок
Используйте возможности оператора WHERE.
Вместо того чтобы загружать все данные о продажах компании, сразу отфильтруйте только нужные записи:
SELECT * FROM sales
WHERE region = 'Abuja'
AND year = 2026;
WHERE там, где это возможно, сделает ваши SQL-запросы более эффективными и профессиональными.
Руководство по SQL
Это руководство охватывает различные аспекты, начиная с основ SQL и до более сложных тем.
Материал дополнен практическими примерами, которые способствуют лучшему усвоению информации.
👉 @SQLPortal
Полезная находка для работы с SQL
Тулза «Actually Explain» автоматически визуализирует PostgreSQL-запросы в виде интерактивных схем, помогая разобраться в JOIN'ах, подзапросах и связях между таблицами.
Забираем за лайк 📖
👉 @SQLPortal
Отличная находка бесплатная и удобная IDE для работы с SQL базами
Работает с основными СУБД: SQLite, Postgres, MySQL. Поддерживает вкладки, автодополнение, подсветку синтаксиса, историю запросов и множество других полезных функций.
Если часто шаришься по базам эта штука экономит нервы и время ⌨️
👉 @SQLPortal
Потрясающий инструмент для работы с базами данных SQL «RunSQL»
Онлайн-песочница без установки, где можно создавать таблицы и запросы, обмениваться результатами с командой и работать с MySQL, PostgreSQL и SQL Server
Платформа поддерживает визуальное проектирование схем данных, загрузку CSV-файлов и совместное редактирование в реальном времени
И главное он абсолютно бесплатен 👍
👉 @SQLPortal
Откопал полезную платформу для подготовки к собесам «DataLemur»
Коллекция практических задач по SQL, статистике, машинному обучению и Python, предназначенных для подготовки к собеседованиям в крупных компаниях в сфере аналитики данных и data science
Практикуйся прокачивай свои скиллы и уверенно проходи интервью в Google, Amazon и других гигантах 😎
👉 @SQLPortal
Принёс полезную шпаргалку по SQL: основы, JOIN-запросы и агрегация
Изучите базовые операции SQL: выборку данных, объединение таблиц с помощью JOIN, агрегирование с функциями COUNT, AVG, SUM и создание подзапросов. Эта шпаргалка станет вашим надежным помощником в ежедневной работе с SQL ✏️
Полная PDF версия тут ⬇️
👉 @SQLPortal
Читерский набор для разработчика делюсь находкой
Здесь есть буквально всё, короткие удобные шпаргалки по самым нужным темам. Git, SQL-запросы, Docker, RegEx, Bash, Python, JS, HTTP-коды, архитектура REST и многое другое.
Держи под рукой чтобы ускорить рабочий процесс ⌨️
👉 @SQLPortal
Принёс полезное инструмент для обучения PostgreSQL
PostgreSQL-песочница с практическими уроками по SQL, транзакциям, индексам, PostGIS и не только. Всё работает в браузере. Заходи и учись на реальных данных 👍
👉 @SQLPortal
SQL в Python: руководство по работе с данными
Знаешь SQL и хочешь понять, как делать то же самое в Pandas? Это руководство покажет как привычные SQL-запросы выглядят в мире Python 👊
👉 @SQLPortal
Открытый инструмент для работы с SQL-базами данных!
Визуализируйте, редактируйте и проектируйте базы данных с помощью удобного визуального интерфейса:
✓ Интерактивные диаграммы ваших таблиц
✓ Экспорт схемы базы данных в изображение PNG
✓ Поддержка MySQL, PostgreSQL, SQLite и других СУБД
http://app.chartdb.io
👉 @SQLPortal
Не используйте ELSE 0 вместе с COUNT и CASE
Использование ELSE 0 - очень частая ошибка у новичков, когда они комбинируют функцию COUNT с выражением CASE. Обычно это происходит из-за непонимания того, как именно COUNT работает при применении к столбцу.
Когда используется COUNT(column), функция считает все значения, которые не равны NULL, включая нули. Это значит, что если в выражении CASE указан ELSE 0, каждая строка, не попавшая под условие, превращается в значение 0. В результате такие строки тоже попадают в подсчёт.
Вот наивный пример:
sql id="g4suvd"
SELECT
Department,
COUNT(CASE
WHEN Status = 'Active' THEN EmployeeID
ELSE 0
END) AS ActiveEmployees
FROM Employees
GROUP BY Department;
0, а это валидное значение, поэтому оно тоже учитывается в COUNT. Из-за этого результат может получиться вводящим в заблуждение.ELSE. Когда ветка ELSE опущена, выражение CASE возвращает NULL для строк, которые не соответствуют условию. А так как COUNT() игнорирует NULL, будут посчитаны только строки, которые действительно удовлетворяют условию. Вот правильный вариант:sql id="vxa5np"
SELECT
Department,
COUNT(CASE
WHEN Status = 'Active' THEN EmployeeID
END) AS ActiveEmployees
FROM Employees
GROUP BY Department;
NULL, и COUNT() естественным образом исключает их из подсчёта. В итоге запрос получается чище, а подсчёт корректно отражает только те значения, которые реально соответствуют условию.
SQL-совет, который должен знать каждый новичок
Не используйте SELECT * в реальных проектах.
Вместо этого явно указывайте только те столбцы, которые действительно нужны:
SELECT FirstName, Salary, Department
FROM Employees
WHERE Department = 'Sales';
SELECT * допустимо при быстром исследовании данных или в учебных примерах, но в production-коде считается плохой практикой.
Некоторые SQL-грабли, на которые до сих пор наступают даже сеньоры (мне тоже иногда приходится лезть в доки и перепроверять):
1. = NULL никогда не бывает true. Используй IS NULL / IS NOT NULL (трехзначная логика: true, false, unknown).
2. NOT IN (...) + один NULL в списке может вернуть ноль строк. Чаще безопаснее NOT EXISTS.
3. LEFT JOIN + фильтр в WHERE превращается в INNER JOIN. Фильтры по джойну клади в ON.
4. COUNT(col) пропускает NULL, а COUNT(*) нет. Из-за этого метрики потом “магически” не сходятся.
5. NULL ломает конкатенацию и сравнения. Используй COALESCE осознанно.
👉 @SQLPortal
Наглядное объяснение операций соединения в SQL.
👉 @SQLPortal
Бесплатные курсы по «Data Science» от Kaggle Learn
Бесплатные курсы по анализу данных, машинному обучению, Python, SQL и другим инструментам data science. Построены по принципу: «минимум теории, максимум кода»
Все задания выполняются в Jupyter ноутбуках прямо в браузере и есть система автоматической проверки 👍
👉 @SQLPortal
Совет по SQL: Если вы только начинаете изучать SQL, не используйте SELECT * без необходимости.
Лучше всегда явно указывайте только те столбцы, которые действительно нужны. Это даст сразу несколько преимуществ:
• Запросы будут выполняться быстрее.
• Будет передаваться меньше лишних данных.
• Код станет понятнее и его будет проще поддерживать.
• Вы лучше поймёте структуру таблицы и то, с какими данными работаете.
Небольшая привычка, которая со временем приносит большую пользу.
👉 @SQLPortal
SQL Tip: использование ORDER BY с несколькими столбцами
При использовании ORDER BY с несколькими столбцами база данных сначала сортирует весь результат по первому указанному столбцу (в данном примере — sales).
В результате формируются группы строк с одинаковым значением этого столбца. Например, Mira и Bob попадают в одну группу, потому что у обоих значение sales равно 12 000.
После этого применяется сортировка по второму столбцу, которая используется как критерий для разрешения совпадений.
В данном случае строки сортируются по столбцу age в порядке возрастания (ASC), поэтому Mira (30 лет) будет расположена перед Bob, который старше. Такой принцип применяется ко всем строкам, у которых совпадает значение первого столбца сортировки.
Что если совпадают значения и во втором столбце? Если одинаковыми оказываются значения и второго столбца, ситуация зависит от конкретной СУБД. В небольших наборах данных некоторые базы данных могут сохранить порядок вставки записей.
Однако в большинстве случаев, особенно при работе с большими и сложными наборами данных, порядок строк с полностью одинаковыми значениями сортируемых столбцов не гарантируется и может быть произвольным.
Вывод: если вам важен полностью предсказуемый порядок результатов, добавляйте в ORDER BY дополнительный столбец с уникальными значениями (например, id). Это гарантирует стабильную сортировку.
👉 @SQLPortal
День 8 из серии «20 дней изучения основ SQL для начинающих».
Многие начинающие разработчики путают операторы WHERE и HAVING.
На самом деле разница довольно проста:
• WHERE фильтрует отдельные строки до выполнения группировки (GROUP BY).
• HAVING фильтрует уже сформированные группы после применения агрегатных функций.
Поняв эту ключевую концепцию, вы сможете создавать гораздо более мощные и гибкие SQL-запросы для построения отчётов и анализа данных.
Сохраните эту шпаргалку — она обязательно пригодится вам в изучении SQL.
👉 @SQLPortal
День 7 из серии «20 дней изучения основ SQL для начинающих».
Сырые данные часто содержат слишком много информации, чтобы сразу увидеть закономерности.
Оператор GROUP BY помогает объединить тысячи строк в понятные сводные результаты и получить ценные инсайты.
Научитесь агрегировать данные с помощью:
• COUNT() — подсчёт количества записей
• SUM() — вычисление суммы
• AVG() — расчёт среднего значения
• Группировка по нескольким полям (GROUP BY по нескольким столбцам)
Освоив GROUP BY, вы сможете строить отчёты, анализировать данные и получать сводную информацию всего несколькими SQL-запросами.
Сохраните эту шпаргалку — GROUP BY является одним из самых важных навыков, которые нужно освоить при изучении SQL.
👉 @SQLPortal
День 6 из серии «20 дней изучения основ SQL для начинающих».
Сырые данные сами по себе не дают ответов на бизнес-вопросы. Это делают агрегатные функции SQL.
Освойте эти 5 базовых функций:
• COUNT() — подсчёт количества записей
• SUM() — вычисление суммы
• AVG() — расчёт среднего значения
• MIN() — поиск минимального значения
• MAX() — поиск максимального значения
Освоив их, вы научитесь превращать набор строк в полезную аналитику и получать ценные инсайты из данных.
Сохраните эту шпаргалку по SQL, чтобы всегда иметь её под рукой.
👉 @SQLPortal
День 5 из серии «20 дней изучения основ SQL для начинающих»
Данные становятся по-настоящему полезными, когда они правильно упорядочены.
Сортировка помогает:
• находить лидеров и лучшие результаты;
• выявлять тенденции;
• быстрее анализировать данные.
Освойте эти 6 способов сортировки в SQL, и ваши запросы сразу станут более эффективными и информативными.
Сохраните эту шпаргалку, чтобы вернуться к ней позже.
👉 @SQLPortal
День 4 из серии «20 дней изучения SQL для начинающих».
Большинство SQL-запросов работают не с точными совпадениями, а с поиском по шаблону.
Изучите эти базовые конструкции:• LIKE — поиск по шаблону
• % — подстановочный символ для любого количества символов
• _ — подстановочный символ для одного любого символа
• IN — поиск по нескольким заданным значениям
• NOT IN — исключение заданных значений
Освоив фильтрацию по шаблонам и спискам значений, вы сможете находить нужные данные гораздо быстрее.
Сохраните эту SQL-шпаргалку она ещё не раз пригодится.
👉 @SQLPortal
День 3 из серии «20 дней изучения SQL для начинающих».
Большинство баз данных содержат тысячи строк. Настоящее мастерство не в том, чтобы видеть все данные, а в том, чтобы быстро находить именно те, которые нужны.
Освойте эти 6 способов фильтрации данных и начните писать SQL-запросы как настоящий аналитик данных.
Сохраните эту шпаргалку, чтобы она всегда была под рукой.
👉 @SQLPortal
ДЕНЬ 2 из серии «20 дней SQL для начинающих».
Большинство новичков в SQL сразу переходят к изучению JOIN. Но любой SQL-запрос начинается с одной команды:
SELECT
Сначала освойте эти 5 основных концепций:
• SELECT * выбрать все столбцы
• Выбор конкретных столбцов
• DISTINCT получить только уникальные значения
• Псевдонимы (Aliases) переименование столбцов или таблиц
• LIMIT ограничение количества возвращаемых строк
Когда вы уверенно освоите SELECT, изучать остальные возможности SQL станет гораздо проще.
Сохраните эту шпаргалку и сегодня же попробуйте выполнить каждый из этих запросов на учебной базе данных.
👉 @SQLPortal
ДЕНЬ 1 из серии «20 дней SQL для начинающих».
Каждый аналитик данных начинает свой путь с SQL. Прежде чем переходить к дашбордам, машинному обучению или бизнес-аналитике, важно понять, как хранятся данные и как к ним обращаться с помощью запросов.
Начните с этих 6 базовых концепций и заложите прочный фундамент для дальнейшего изучения SQL.
Сохраните эту дорожную карту, чтобы вернуться к ней позже.
👉 @SQLPortal