# Операции фильтрации

Операции **фильтрации** в SQL позволяют выбирать только те строки из таблицы, которые удовлетворяют определённым условиям. Это делается с помощью ключевого слова `WHERE`.

***

#### 1️⃣ Основной синтаксис

```sql
SELECT колонка1, колонка2
FROM таблица
WHERE условие;
```

***

#### 2️⃣ Примеры условий

1. **Сравнение значений**

```sql
SELECT * FROM employees
WHERE salary > 5000;
```

→ Сотрудники с зарплатой больше 5000.

2. **Равенство/неравенство**

```sql
SELECT * FROM products
WHERE category = 'Electronics';
```

3. **Диапазон значений (`BETWEEN`)**

```sql
SELECT * FROM orders
WHERE order_date BETWEEN '2025-01-01' AND '2025-03-31';
```

4. **Список значений (`IN`)**

```sql
SELECT * FROM employees
WHERE department_id IN (1, 2, 3);
```

5. **Шаблоны (`LIKE`)**

```sql
SELECT * FROM customers
WHERE name LIKE 'A%';
```

→ Имена, начинающиеся на "A".

6. **NULL-значения**

```sql
SELECT * FROM orders
WHERE shipped_date IS NULL;
```

7. **Логические операторы (`AND`, `OR`, `NOT`)**

```sql
SELECT * FROM employees
WHERE department_id = 1 AND salary > 3000;
```

***

#### 3️⃣ Фильтрация после группировки

Для фильтрации по агрегатам используется `HAVING`, а не `WHERE`:

```sql
SELECT department_id, COUNT(*) AS emp_count
FROM employees
GROUP BY department_id
HAVING COUNT(*) > 5;
```

***

🔑 **Итого:**

* `WHERE` фильтрует **строки до группировки**.
* `HAVING` фильтрует **результаты после группировки**.
* Можно комбинировать условия через `AND`, `OR`, использовать диапазоны, списки, шаблоны и проверку на NULL.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://kaze.gitbook.io/qa-theory/bazy-dannykh/operacii-filtracii.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
