Зарегистрируйтесь, чтобы продолжить обучение

Фильтрация данных Аналитика на SQL

Фильтрация данных — это важный инструмент, который помогает решать различные аналитические задачи. Фильтрация позволяет извлечь информацию только из тех строк данных, которые соответствуют определенным условиям. Она значительно упрощает обработку больших объемов данных и помогает сэкономить время.

Фильтрация очень полезна в практических задачах аналитика. Например, с ее помощью можно:

  • Получить подвыборку данных, отфильтровав только нужные записи. Так можно собрать продажи за определенный период времени или список клиентов из определенного города
  • Найти данные по конкретным значениям. Так аналитик может найти все продажи с определенным идентификатором товара или клиентов с определенным именем
  • Исключить нежелательные данные из результатов запроса. Например, можно исключить товары с нулевым количеством продаж или клиентов с неправильными контактными данными.
  • Проанализировать данные по определенным условиям. Например, можно изучить продажи только для определенного типа товаров или клиентов определенного возраста

В этом уроке мы попрактикуемся в решении подобных задач — для этого будем использовать уже знакомую нам базу данных.

Оператор WHERE

Оператор WHERE позволяет включить в результаты запроса только те строки, которые соответствуют нашим условиям. Для примера представим, что нам нужно выбрать все магазины в Нью-Йорке:

SELECT *
FROM stores
WHERE city = 'New York';

В результате мы увидим один магазин:

Untitled

Большинство СУБД поддерживают обычные условные операторы:

  • =
  • <
  • >
  • >=
  • <=
  • !=
  • <>

Еще можно использовать логические операторы:

  • AND — логическое И
  • OR — логическое ИЛИ

В сочетании с круглыми скобками они возвращают строки, удовлетворяющие нескольким условиям.

С помощью оператора AND выберем продажи, сделанные в определенный период времени:

SELECT *
FROM sales
WHERE sale_date >= '2023-01-01' AND sale_date <= '2023-01-31';

Получим такой результат — запрос вернет все продажи с 1 января 2023 года по 31 января 2023 года:

Untitled

Еще для определения диапазона значений можно использовать оператор BETWEEN. Попробуем написать запрос с тем же результатом, заменив условные операторы на BETWEEN:

SELECT *
FROM sales
WHERE sale_date BETWEEN '2023-01-01' AND '2023-01-31';

Еще можно объединять условия фильтрации с помощью оператора OR:

SELECT *
FROM stores
WHERE region = 'North America' OR region = 'Europe';

В этом примере запрос выбирает строки, где значение столбца region равно 'North America' или 'Europe'. В результате мы видим все магазины из этих двух регионов:

Untitled

Обращение к столбцу по псевдониму

Начинающие аналитики часто пытаются отфильтровать столбец по псевдонимам. Для примера представим, что нам нужно вывести сумму продаж конкретного товара, если его купили более ста раз.

Пишем очевидный на первый взгляд запрос:

SELECT SUM(quantity) AS total_sales
FROM sales
WHERE total_sales > 100;

Такой запрос не выполнится и вернет ошибку. Дело в том, что оператор WHERE обрабатывается перед оператором SELECT, когда псевдоним total_sales еще не создан.

Эту ошибку можно устранить с помощью вложенного запроса:

SELECT *
FROM
    (
        SELECT SUM(quantity) AS total_sales
        FROM sales
    )
WHERE total_sales > 100

Здесь мы используем тот факт, что оператор FROM обрабатывается перед оператором WHERE. При вложении исходного запроса в оператор FROM его результаты возвращаются до того, как оператор WHERE обработает внешний запрос. Поэтому здесь оператор увидит наш псевдоним total_sales.

Вложенный запрос вернет такой результат:

Untitled

Этот прием может быть полезен, когда мы хотим поменять названия столбцов результирующего множества.

Выводы

В этом уроке мы изучили фильтрацию данных и узнали следующее:

  • Фильтрация данных позволяет извлечь только те строки, которые соответствуют определенным условиям
  • Фильтрация помогает решать разные аналитические задачи — получать подвыборки данных, искать по конкретным значениям, исключать нежелательные данные и анализировать данные по определенным условиям
  • В SQL для фильтрации данных используется оператор WHERE. Он позволяет указать условия, которым должны соответствовать строки данных.
  • Для определения условий фильтрации оператор WHERE может использовать условные операторы =, <, >, <=, >=, != и <>
  • Оператор BETWEEN AND помогает определить диапазон значений в фильтрации данных
  • Условия фильтрации можно объединять с помощью операторов AND и OR
  • При использовании псевдонимов для столбцов в SELECT-запросе, нельзя обращаться к ним непосредственно в операторе WHERE. Вместо этого можно использовать вложенный запрос для доступа к псевдонимам

Далее в курсе мы изучим оператор GROUP BY, который агрегирует данные по определенным критериям, проводит группировку и подсчитывает агрегатные функции на уровне групп данных.


Дополнительные материалы

  1. WHERE

Для полного доступа к курсу нужен базовый план

Базовый план откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.

Получить доступ
1000
упражнений
2000+
часов теории
3200
тестов

Открыть доступ

Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно

  • 130 курсов, 2000+ часов теории
  • 1000 практических заданий в браузере
  • 360 000 студентов
Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»

Наши выпускники работают в компаниях:

Логотип компании Альфа Банк
Логотип компании Aviasales
Логотип компании Yandex
Логотип компании Tinkoff