← Log Explorer / log-explorer
Поддерживаемые SQL-запросы
На этой странице описаны возможности SQL, поддерживаемые Log Explorer, включая распространённые агрегатные функции, выражения и конструкции запросов.
Диаграмма ниже показывает общую структуру допустимого запроса в Log Explorer. Она демонстрирует, как стандартные конструкции SQL, такие как SELECT, WHERE, GROUP BY, а также ORDER BY , которые можно комбинировать для составления поддерживаемых запросов.
Примеры запросов:
SELECT * FROM table WHERE (a = 1 OR b = "hello") AND c < 25.89SELECT a, b, c FROM table WHERE d >= "GB" LIMIT 10
Подробно о конструкциях SQL
Следующие конструкции SQL определяют структуру и логику запросов в Log Explorer:
SELECT-SELECTконструкция определяет столбцы, которые нужно получить из таблиц базы данных. Она может включать имена отдельных столбцов, выражения или даже символ подстановки для выбора всех столбцов.FROM-FROMконструкция определяет таблицы, из которых извлекаются данные. Она указывает источник данных дляSELECTоператор.WHERE-WHEREконструкция отфильтровывает строки, возвращаемые запросом, на основе заданных условий. Она позволяет указать условия, которым должна соответствовать строка, чтобы попасть в результирующий набор.SELECT DISTINCT: удаляет повторяющиеся строки из результирующего набора.GROUP BY: группирует строки для агрегации. КонструкцияGROUP BYконструкция используется для группировки строк с одинаковыми значениями в итоговые строки.ORDER BY: сортирует результирующий набор. КонструкцияORDER BYконструкция используется для сортировки результирующего набора по одному или нескольким столбцам в порядке возрастания или убывания.LIMIT: ограничивает количество возвращаемых строк. КонструкцияLIMITконструкция используется для ограничения количества строк, возвращаемых запросом. Её часто применяют вместе сORDER BYконструкцию, чтобы получить первыеNстрок или для реализации постраничной навигации.OFFSET: пропускает заданное количество строк перед возвратом результатов.
Следующие разделы подробнее раскрывают остальные элементы диаграммы: агрегатные функции, строковые и числовые выражения, а также поддерживаемые операторы.
Функции
Log Explorer поддерживает набор SQL-функций для преобразования, вычисления и обобщения данных, включая скалярные и агрегатные функции.
Скалярные функции
Они помогают обрабатывать или вычислять значения (чаще всего строки):
-
ARRAY_CONTAINS(array, element): проверяет, содержит ли массив элемент.Пример
ARRAY_CONTAINS(['US', 'CA'], ClientCountry)Возвращает строки, где
ClientCountryравно либоUSилиCA. -
SUBSTRING(string, from_number, for_number): извлекает часть строки.Пример
SUBSTRING(ClientRequestPath, 0, 5)Извлекает первые
5символов изClientRequestPath. -
LOWER(string): преобразует в нижний регистр.Пример
LOWER(ClientRequestUserAgent)Преобразует строку User-Agent в нижний регистр.
-
UPPER(string): преобразует в верхний регистр.Пример
UPPER(ClientCountry)Преобразует код страны в верхний регистр.
Функции агрегирования
Используются для выполнения вычислений над наборами строк:
-
SUM(expression): сумма значений.Пример
SUM(ClientRequestBytes)Суммирует общее количество байт, запрошенных клиентами.
-
MIN(expression): минимальное значение.Пример
MIN(OriginResponseDurationMs)Находит наименьшее время ответа от исходных серверов.
-
MAX(expression): максимальное значение.Пример
MAX(OriginResponseDurationMs)Находит наибольшее время ответа.
-
COUNT(expression): количество строк (может учитывать все строки или только значения, отличные от null).Пример
COUNT(ClientRequestUserAgent)Подсчитывает количество строк, содержащих значение User-Agent.
-
COUNT(DISTINCT expression): количество уникальных значений, отличных от null.Пример
COUNT(DISTINCT ClientIP)Подсчитывает количество уникальных IP-адресов клиентов, отправивших запросы.
-
AVG(expression): среднее значение числовых данных.Пример
AVG(OriginResponseDurationMs)Вычисляет среднее время ответа источника в миллисекундах.
Диаграмма ниже показывает грамматику SQL-выражений, включая скалярные и агрегатные функции.
Выражения
Условия или логика, используемые в запросах:
CASE WHEN: условная логика (аналог if-else).AS: псевдоним для столбцов или таблиц.LIKE: сопоставление с шаблоном.IN (list): проверяет, входит ли значение в список.BETWEEN ... AND ...: проверяет, находится ли значение в заданном диапазоне.Unary operator: работает с одним операндом (например,-5).Binary operator: работает с двумя операндами (например,5 + 3).Nested Expressions: выражение, заключённое в скобки, например( x > y )или( 1 ).Compound identifier: составное имя (например,schema.table.column).Array: набор значений (по-разному поддерживается в различных диалектах SQL).Literals: представляют значения, такие как строки, числа или массивы.
Диаграмма ниже показывает грамматику SQL-выражений и подробно описывает возможные формы выражений, включая столбцы, литералы, функции, операторы и псевдонимы.
Диаграмма ниже описывает грамматику унарных операторов, которые работают с одним операндом (например, отрицание или логическое NOT):
Бинарные операторы
Используются для арифметических, сравнительных и логических операций:
- Арифметика:
+,-,*,/,%(по модулю) - Сравнение:
>,<,>=,<=,=,!=(или<>)` - Логические:
AND,OR,XOR - Побитовые:
&,|,^,>>,<< - Конкатенация строк:
||