Перейти к основному содержимому

SQL WHERE

Если скромный оператор SELECT — это кухонный нож аналитического инженера, то предложение WHERE — это соответствующая точилка: без него не происходит ни (хорошей) готовки, ни (хорошего) моделирования данных.

Предложение WHERE является основным оператором SQL — оно позволяет вам правильно фильтровать ваши модели данных и запросы, чтобы вы могли рассматривать конкретные подмножества данных в соответствии с вашими требованиями.

Как использовать предложение SQL WHERE

Синтаксис использования предложения WHERE в операторе SELECT выглядит следующим образом:

select
order_id,
customer_id,
amount
from {{ ref('orders') }}
where status != 'returned'

В этом запросе вы фильтруете любые заказы из модели orders Jaffle Shop, статус которых не returned, добавляя предложение WHERE после оператора FROM. Вы также можете фильтровать по строковым, числовым, датам или другим типам данных, чтобы соответствовать условиям вашего запроса.

Скорее всего, вы увидите предложения WHERE в 99.99% случаев в типичном запросе или модели dbt. Остальные 0.01% вероятно будут в операторе, таком как DELETE или ALTER, для изменения определенных строк в таблицах.

Синтаксис предложения SQL WHERE в Snowflake, Databricks, BigQuery и Redshift

Поскольку предложение WHERE является основой SQL, Google BigQuery, Amazon Redshift, Snowflake и Databricks поддерживают возможность фильтрации запросов и моделей данных с его помощью. Кроме того, синтаксис округления одинаков во всех них при использовании предложения WHERE.

Примеры использования предложения SQL WHERE

Предложения WHERE, вероятно, являются одними из наиболее широко используемых возможностей SQL, сразу после операторов SELECT и FROM. Ниже приведен неполный список случаев, где вы часто увидите предложения WHERE в проектах dbt и работе с данными:

  • Удаление строк, удаленных из источника, из промежуточных моделей для повышения точности и улучшения производительности моделей на следующих этапах
  • Фильтрация записей сотрудников из моделей
  • Проведение разовых анализов на конкретных строках или пользователях, будь то в модели dbt, BI-инструменте или разовом запросе
  • Использование с IN, LIKE, NOT IN для создания более общих или группы специфических требований для фильтрации
0