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_id | order_id | order_date |
|---|---|---|
| 1 | 1 | 2018-01-01 |
| 3 | 2 | 2018-01-02 |
| 94 | 3 | 2018-01-04 |
| 50 | 4 | 2018-01-05 |
| 64 | 5 | 2018-01-05 |
| 54 | 6 | 2018-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 моделях или разовых анализах, но он содержит некоторые общие сценарии, с которыми могут столкнуться аналитики.