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

SQL BETWEEN

Условие SQL BETWEEN позволяет указать диапазон числовых, датированных или текстовых значений для фильтрации строк в запросе. Это особенно полезно при выполнении разовых аналитических задач для сужения результатов запроса на определенный диапазон данных.

На этой странице мы рассмотрим, как использовать условие SQL BETWEEN и объясним, почему оно может быть полезно для вас.

Как использовать условие SQL BETWEEN

Условие BETWEEN имеет простой синтаксис и должно быть указано в предложении WHERE:

where <field_name> between <beginning_value> and <end_value>

Важно отметить, что условие BETWEEN включает в себя beginning_value и end_value.

Давайте рассмотрим практический пример использования условия BETWEEN ниже.

Пример SQL BETWEEN

select
customer_id,
order_id,
order_date
from {{ ref('orders') }}
where order_date between '2018-01-01' and '2018-01-31'

Этот простой запрос, использующий таблицу orders из Jaffle Shop, вернет все строки, где order_date попадает в январь 2018 года:

customer_idorder_idorder_date
112018-01-01
322018-01-02
9432018-01-04
5042018-01-05
6452018-01-05
5462018-01-07

Альтернативно, вы можете построить этот же запрос, используя операторы >/= (where order_date >= 2018-01-01' and order_date <= '2018-01-31' или where order_date >= '2018-01-01' and order_date < '2018-02-01').

Вы также можете увидеть использование оператора NOT перед BETWEEN для исключения строк, попадающих в указанные диапазоны.

Синтаксис BETWEEN в Snowflake, Databricks, BigQuery и Redshift

Большинство современных хранилищ данных поддерживают условие BETWEEN; синтаксис также одинаков для всех них. Если ваше хранилище данных не поддерживает условие BETWEEN, рассмотрите возможность использования операторов >/=, как в примере выше.

Используйте таблицу ниже, чтобы узнать больше о документации для оператора BETWEEN в вашем хранилище данных.

Хранилище данныхПоддержка BETWEEN?
Snowflake
Databricks
Amazon Redshift
Google BigQuery

Примеры использования условия SQL BETWEEN

Чаще всего условие BETWEEN используется в работе с данными для:

  • Фильтрации результатов запроса в указанный диапазон дат
  • Создания категорий для данных с использованием операторов case, что часто используется для классификации вовлеченности в веб-сессии или оценки NPS
case when time_engaged between 0 and 9 then 'low_engagement'
when time_engaged between 10 and 29 then 'medium_engagement'
else 'high_engagement' end as engagement

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

0