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 моделях или разовых анализах, но он содержит некоторые общие сценарии, с которыми могут столкнуться аналитики.