JSONB запрос: SELECT data->>’user_agent’ FROM logs WHERE data @> ‘{«status»: 500}’;

## Разбор запроса и формирование строки CSV

### Что делает этот SQL-запрос?

Запрос написан для PostgreSQL и работает с колонкой `data` типа `JSONB`:

sql
SELECT data->>’user_agent’ FROM logs WHERE data @> ‘{«status»: 500}’;

**Разбор по частям:**

— `data->>’user_agent’` — оператор `->>’` извлекает значение ключа `user_agent` из JSONB-объекта как текстовую строку (тип `text`). Если ключ отсутствует, возвращается `NULL`.
— `FROM logs` — обращение к таблице `logs`, в которой хранятся записи с JSONB-полем `data`.
— `WHERE data @> ‘{«status»: 500}’` — оператор `@>` проверяет, содержит ли JSONB-объект в колонке `data` вложенный объект `{«status»: 500}`. То есть выбираются только те строки, где в JSON-данных поле `status` равно `500`.

Таким образом, запрос возвращает список всех `user_agent`-строк из логов, где зафиксирована ошибка сервера (HTTP 500).

### Строка для CSV

Для будущего CSV-файла одна строка заголовка и пример строки данных будут выглядеть так:

query,table,extracted_field,filter_operator,filter_key,filter_value,return_type
«SELECT data->>’user_agent’ FROM logs WHERE data @> ‘{«status»»: 500}'»»


Задайте вопрос нейросети

Не нашли ответ? Спросите ИИ — он подготовит развёрнутую статью.