SQL AND
Оператор AND возвращает результаты, которые соответствуют всем переданным в него условиям; в отличие от оператора OR, которому достаточно одного истинного условия. Вы часто увидите оператор AND в предложении WHERE для фильтрации результатов запроса или в операторе case для создания нескольких критериев для результата.
Используйте эту страницу, чтобы понять, как использовать оператор AND и почему он может быть полезен в аналитической инженерии.
Как использовать оператор AND
Использовать оператор AND просто, и вы обычно увидите его в предложении WHERE для соответствующей фильтрации результатов запроса, в операторах case или в объединениях, которые включают несколько полей.
-- and в предложении where
where <condition_1> and <condition_2> and…
-- and в операторе case
case when <condition_1> and <condition_2> then <result_1> …
-- and в объединении
from <table_a>
join <table_b> on
<a_id_1> = <b_id_1> and <a_id_2> = <b_id_2>
Использование суррогатных ключей, хешированных значений нескольких столбцов, — отличный способ избежать использования операторов AND в объединениях. Обычно наличие операторов AND или OR в объединении может сделать запрос или модель потенциально неэффективными, особенно при значительных объемах данных, поэтому создание суррогатных ключей на более ранних этапах в ваших исходных таблицах (используя макрос суррогатного ключа) может потенциально улучшить производительность в последующих моделях.
Пример оператора SQL AND
select
order_id,
status,
round(amount) as amount
from {{ ref('orders') }}
where status = 'shipped' and amount > 20
limit 3
Этот запрос, использующий пример набора данных таблицы orders
магазина Jaffle, вернет результаты, где статус заказа — отправлен, а сумма заказа превышает $20:
order_id | status | amount |
---|---|---|
74 | shipped | 30 |
88 | shipped | 29 |
78 | shipped | 26 |
Синтаксис оператора AND в Snowflake, Databricks, BigQuery и Redshift
Snowflake, Databricks, Google BigQuery и Amazon Redshift поддерживают оператор AND с одинаковым синтаксисом на каждой платформе.