Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Область применения:
Databricks SQL
Databricks Runtime
Создает результирующий набор из одной или нескольких ссылок на таблицу.
Предложение SELECT может быть частью запроса, который также содержит обобщенные табличные выражения (CTE), операции над множествами и другие предложения.
Синтаксис
SELECT clause
FROM table_reference [, ...]
[ LATERAL VIEW clause ]
[ WHERE clause ]
[ GROUP BY clause ]
[ HAVING clause]
[ QUALIFY clause ]
named_expression
expression [ column_alias ]
star_clause
[ { table_name | view_name } . ] * [ except_clause ]
except_clause
EXCEPT ( { column_name | field_name } [, ...] )
Параметры
пункт SELECT
Собирает столбцы, возвращаемые из вложенного запроса, включая выполнение выражений, агрегацию и удаление дубликатов.
-
Источник входных данных для
SELECT. Эта ссылка на входные данные может быть преобразована в потоковую ссылку с помощьюSTREAMключевого слова до ссылки.Если
table_referenceявляется представлением метрик, вFROMне должно быть другой ссылки на таблицу. -
Используется в сочетании с
EXPLODEи другими функциями генератора, которые создают виртуальную таблицу с одной или несколькими строками.LATERAL VIEWприменяет эти строки к каждой исходной строке в выходных данных.В Databricks SQL и начиная с Databricks Runtime 12.2 это предложение устарело. Вы должны вызвать функцию генератора с табличным значением в качестве table_reference.
-
Фильтрует результат предложения
FROMна основе представленных предикатов. -
Выражения, используемые для группирования строк. Используется совместно с агрегатными функциями (
MIN,MAX,COUNT,SUM,AVG) для группирования строк на основе выражений группирования и агрегатных значений в каждой группе. Если предложениеFILTERвложено в агрегатную функцию, в эту функцию передаются только соответствующие строки. -
Предикаты, по которым фильтруются строки, производимые командой
GROUP BY. ПредложениеHAVINGиспользуется для фильтрации строк после группирования. Если указатьHAVINGбезGROUP BY, это будет означать командуGROUP BYбез выражений группирования (глобальное статистическое выражение). -
Предикаты, используемые для фильтрации результатов функций окон. Чтобы использовать
QUALIFY, в списке или в предложении SELECT должна быть хотя бы одна функция окна QUALIFY.
Выбор данных в разностной таблице
Помимо стандартных параметров SELECT разностные таблицы поддерживают параметры перехода по времени, описанные в этом разделе. Дополнительные сведения см. в разделе "Работа с журналом таблиц".
Синтаксис AS OF
table_identifier TIMESTAMP AS OF timestamp_expression
table_identifier VERSION AS OF version
-
timestamp_expressionможет быть одним из следующих вариантов:-
'2018-10-18T22:15:12.013Z', то есть строкой, которая может приводиться к метке времени; cast('2018-10-18 13:36:32 CEST' as timestamp)-
'2018-10-18', то есть строкой даты. current_timestamp() - interval 12 hoursdate_sub(current_date(), 1)- Любое другое выражение, которое является меткой времени или может быть приведено к ней
-
-
version— это длинное значение, которое можно получить из выходных данныхDESCRIBE HISTORY table_spec.
Ни timestamp_expression, ни version не может быть подзапросом.
Пример
> SELECT * FROM events TIMESTAMP AS OF '2018-10-18T22:15:12.013Z'
> SELECT * FROM events VERSION AS OF 123
Синтаксис @
Используйте синтаксис @ для указания метки времени или версии. Метка времени должна быть указана в формате yyyyMMddHHmmssSSS. Вы можете указать версию после @, добавив к версии v. Например, чтобы запросить версию 123 для таблицы events, укажите events@v123.
Пример
> SELECT * FROM events@20190101000000000
> SELECT * FROM events@v123
Примеры
-- select all referencable columns from all tables
> SELECT * FROM VALUES(1, 2) AS t1(c1, c2), VALUES(3, 4) AS t2(c3, c4);
1 2 3 4
-- select all referencable columns from one table
> SELECT t2.* FROM VALUES(1, 2) AS t1(c1, c2), VALUES(3, 4) AS t2(c3, c4);
3 4
-- select all referencable columns from all tables except t2.c4
> SELECT * EXCEPT(c4) FROM VALUES(1, 2) AS t1(c1, c2), VALUES(3, 4) AS t2(c3, c4);
1 2 3
-- select all referencable columns from a table, except a nested field.
> SELECT * EXCEPT(c2.b) FROM VALUES(1, named_struct('a', 2, 'b', 3)) AS t(c1, c2);
1 { "a" : 2 }
-- Removing all fields results in an empty struct
> SELECT * EXCEPT(c2.b, c2.a) FROM VALUES(1, named_struct('a', 2, 'b', 3)) AS t(c1, c2);
1 { }
-- Overlapping names result in an error
> SELECT * EXCEPT(c2, c2.a) FROM VALUES(1, named_struct('a', 2, 'b', 3)) AS t(c1, c2);
Error: EXCEPT_OVERLAPPING_COLUMNS
Связанные статьи
- CLUSTER BY предложения
- Общее табличное выражение (CTE)
- DISTRIBUTE BY предложения
- GROUP BY предложения
- HAVING предложения
- QUALIFY предложения
- Указания
- VALUES предложения
- JOIN
- LATERAL VIEW предложения
- LIMIT предложения
- OFFSET предложения
- ORDER BY предложения
- PIVOT предложения
- Запрос
- SELECT предложения
- Операторы Set
- SORT BY предложения
- Предложение Star
- TABLESAMPLE предложения
- Функция с табличным значением (TVF)
- Справочник по таблицам
- UNPIVOT предложения
- WHERE предложения
- WINDOW предложения
- Функции окна