Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:
Databricks SQL
Databricks Runtime
Compõe um conjunto de resultados a partir de uma ou mais referências de tabela .
A cláusula SELECT pode fazer parte de uma consulta que também inclui expressões de tabela comuns (CTE), operações de conjunto e várias outras cláusulas.
Sintaxe
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 } [, ...] )
Parâmetros
-
Recolhe as colunas a serem retornadas da subconsulta, incluindo a execução de expressões, agregações e eliminação de duplicados.
-
Uma fonte de entrada para o
SELECT. Essa referência de entrada pode ser transformada em uma referência de streaming usando aSTREAMpalavra-chave antes da referência.Se
table_referencefor uma visualização métrica, não pode haver mais nenhuma referência a outra tabela na cláusulaFROM. -
Usado em conjunto com funções de gerador, como
EXPLODE, que gera uma tabela virtual contendo uma ou mais linhas.LATERAL VIEWAplica as linhas a cada linha de saída original.No Databricks SQL, e começando com o Databricks Runtime 12.2, esta cláusula foi preterida. Você deve invocar uma função geradora de valor de tabela como um table_reference.
-
Filtra o
FROMresultado da cláusula com base nos predicados fornecidos. -
As expressões usadas para agrupar as linhas. Isso é usado em conjunto com funções agregadas (
MIN,MAX,COUNT,SUM,AVG) para agrupar linhas com base nas expressões de agrupamento e valores agregados em cada grupo. Quando umaFILTERcláusula é anexada a uma função agregada, apenas as linhas correspondentes são passadas para essa função. -
Os predicados pelos quais as linhas produzidas por
GROUP BYsão filtradas. AHAVINGcláusula é usada para filtrar linhas depois que o agrupamento é executado. Se você especificarHAVINGsemGROUP BY, ele indicará umGROUP BYsem agrupar expressões (agregado global). -
Os predicados que são usados para filtrar os resultados das funções de janela. Para usar
QUALIFY, pelo menos uma função de janela é necessária para estar presente na lista de SELECT ou na cláusula QUALIFY.
Selecionar na tabela Delta
Além das opções padrão de SELECT, as tabelas Delta suportam as opções descritas nesta seção para viagem no tempo. Para obter detalhes, consulte Trabalhar com o histórico da tabela Delta Lake.
AS OF Sintaxe
table_identifier TIMESTAMP AS OF timestamp_expression
table_identifier VERSION AS OF version
-
timestamp_expressionpode ser qualquer um:-
'2018-10-18T22:15:12.013Z', ou seja, uma cadeia de caracteres que pode ser convertida em um carimbo de data/hora cast('2018-10-18 13:36:32 CEST' as timestamp)-
'2018-10-18', ou seja, uma cadeia de caracteres de data current_timestamp() - interval 12 hoursdate_sub(current_date(), 1)- Qualquer outra expressão que seja ou possa ser convertida em um carimbo de data/hora
-
-
versioné um valor longo que pode ser obtido a partir da saída deDESCRIBE HISTORY table_spec.
Nem timestamp_expressionversion podem ser subconsultas.
Exemplo
> SELECT * FROM events TIMESTAMP AS OF '2018-10-18T22:15:12.013Z'
> SELECT * FROM events VERSION AS OF 123
@ Sintaxe
Use a @ sintaxe para especificar o carimbo de data/hora ou a versão. O carimbo de data/hora deve estar no yyyyMMddHHmmssSSS formato. Você pode especificar uma versão depois @ antecipando a v para a versão. Por exemplo, para consultar a versão 123 para a tabela events, especifique events@v123.
Exemplo
> SELECT * FROM events@20190101000000000
> SELECT * FROM events@v123
Exemplos
-- 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
Artigos relacionados
- CLUSTER BY cláusula
- Expressão de tabela comum (CTE)
- DISTRIBUTE BY cláusula
- GROUP BY cláusula
- HAVING cláusula
- QUALIFY cláusula
- Dicas
- VALUES cláusula
- JOIN
- LATERAL VIEW cláusula
- LIMIT cláusula
- OFFSET cláusula
- ORDER BY cláusula
- PIVOT cláusula
- Consulta
- SELECT cláusula
- Definir operadores
- SORT BY cláusula
- Cláusula Star
- TABLESAMPLE cláusula
- Função com valor de tabela (TVF)
- referência de tabela
- UNPIVOT cláusula
- WHERE cláusula
- WINDOW cláusula
- Funções de janela