SELECIONAR
Aplica-se a: Databricks SQL Databricks Runtime
Compõe um conjunto de resultados a partir de uma ou mais referências de tabela.
A SELECT
cláusula 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 [ hints ] [ ALL | DISTINCT ] { named_expression | star_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
-
As dicas ajudam o otimizador do Azure Databricks a tomar melhores decisões de planejamento. O Azure Databricks dá suporte a dicas que influenciam a seleção de estratégias de junção e o reparticionamento dos dados.
TODOS
Selecione todas as linhas correspondentes nas referências da tabela. Ativado por predefinição.
DISTINTOS
Selecione todas as linhas correspondentes nas referências da tabela depois de remover duplicatas nos resultados.
named_expression
Uma expressão com um nome atribuído opcional.
-
Uma combinação de um ou mais valores, operadores e funções SQL que é avaliada como um valor.
-
Um identificador de coluna opcional nomeando o resultado da expressão. Se não
column_alias
for fornecido, o Databricks SQL derivará um.
-
-
Uma abreviatura para nomear todas as colunas referenciadas na
FROM
cláusula ou colunas ou campos de referência de uma tabela específica naFROM
cláusula. -
Uma fonte de entrada para o
SELECT
. Essa referência de entrada pode ser transformada em uma referência de streaming usando aSTREAM
palavra-chave antes da referência. -
Usado em conjunto com funções de gerador, como
EXPLODE
, que gera uma tabela virtual contendo uma ou mais linhas.LATERAL VIEW
Aplica 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
FROM
resultado 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
, , ,SUM
MAX
COUNT
,AVG
) para agrupar linhas com base nas expressões de agrupamento e valores agregados em cada grupo. Quando uma cláusula é anexada a umaFILTER
função agregada, apenas as linhas correspondentes são passadas para essa função. -
Os predicados pelos quais as linhas produzidas por
GROUP BY
são filtradas. AHAVING
cláusula é usada para filtrar linhas depois que o agrupamento é executado. Se você especificarHAVING
sem , ele indicará umGROUP BY
semGROUP BY
agrupar expressões (agregado global). -
Os predicados que são usados para filtrar os resultados das funções de janela. Para usar
QUALIFY
o , é necessário que pelo menos uma função de janela esteja presente na lista SELECT ou na cláusula QUALIFICAR.
Selecionar na tabela Delta
Além das opções padrão SELECT
, as tabelas Delta suportam as opções de viagem no tempo descritas nesta seção. 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_expression
pode ser qualquer um:'2018-10-18T22:15:12.013Z'
, ou seja, uma cadeia de caracteres que pode ser convertida em um carimbo de data/horacast('2018-10-18 13:36:32 CEST' as timestamp)
'2018-10-18'
, ou seja, uma cadeia de caracteres de datacurrent_timestamp() - interval 12 hours
date_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_expression
version
podem ser subconsultas.
Exemplo
> SELECT * FROM events TIMESTAMP AS OF '2018-10-18T22:15:12.013Z'
> SELECT * FROM delta.`/mnt/delta/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 para a v
versão. Por exemplo, para consultar a versão 123
da 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
- Cláusula CLUSTER BY
- Expressão de tabela comum (CTE)
- Cláusula DISTRIBUIR POR
- Cláusula GROUP BY
- TENDO cláusula
- Cláusula QUALIFIQUE
- Dicas
- Cláusula VALORES
- ADERIR
- Cláusula VISTA LATERAL
- Cláusula LIMIT
- Cláusula OFFSET
- CLÁUSULA DE ENCOMENDA POR
- Cláusula PIVOT
- Consulta
- Cláusula TABLESAMPLE
- Definir operadores
- Cláusula ORDENAR POR
- Cláusula Star
- Função com valor de tabela (TVF)
- Referência da tabela
- Cláusula UNPIVOT
- Cláusula WHERE
- Cláusula WINDOW
- Funções do Windows