Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier les répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer de répertoire.
S’applique à :
Databricks SQL
Databricks Runtime
Compose un jeu de résultats à partir d’une ou plusieurs références de table.
La clause SELECT peut faire partie d’une requête qui comprend également des expressions de table communes (CTE), des opérations de définition et diverses autres clauses.
Syntaxe
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 } [, ...] )
Parameters
Clause SELECT
Recueille les colonnes à renvoyer à partir de la sous-requête, y compris l’exécution d’expressions, d’agrégations et de déduplication.
-
Source d’entrée pour le
SELECT. Cette référence d’entrée peut être transformée en référence de streaming à l’aide du mot cléSTREAMavant la référence.table_referenceS’il s’agit d’une vue de métrique, il ne doit y avoir aucune autre référence de table dans laFROMclause. -
Utilisé conjointement avec les fonctions de générateur telles que
EXPLODE, qui génère une table virtuelle contenant une ou plusieurs lignes.LATERAL VIEWapplique les lignes à chaque ligne de sortie d’origine.Dans Databricks SQL, et à compter de Databricks Runtime 12.2, cette clause est déconseillée. Vous devez appeler une fonction de générateur table en tant que table_reference.
-
Filtre le résultat de la clause
FROMen fonction des prédicats fournis. -
Expressions utilisées pour regrouper les lignes. Utilisé conjointement avec les fonctions d’agrégation (
MIN,MAX,COUNT,SUM,AVG) pour regrouper des lignes en fonction des expressions de regroupement et des valeurs agrégées dans chaque groupe. Lorsqu’une clauseFILTERest attachée à une fonction d’agrégation, seules les lignes correspondantes sont transmises à cette fonction. -
Prédicats par lesquels les lignes produites par
GROUP BYsont filtrées. La clauseHAVINGpermet de filtrer les lignes après l’exécution du regroupement. Si vous spécifiezHAVINGsansGROUP BY, il indiqueGROUP BYsans expressions de regroupement (agrégat global). -
Prédicats utilisés pour filtrer les résultats des fonctions de fenêtre. Pour utiliser
QUALIFY, au moins une fonction de fenêtre doit être présente dans la liste SELECT ou la clause QUALIFY.
Sélectionner sur une table Delta
Outre les options standard SELECT, les tables Delta prennent en charge les options de voyage dans le temps décrites dans cette section. Pour plus d’informations, consultez Utiliser l’historique des tables Delta Lake.
Syntaxe AS OF
table_identifier TIMESTAMP AS OF timestamp_expression
table_identifier VERSION AS OF version
-
timestamp_expressionpeut être tout :-
'2018-10-18T22:15:12.013Z', autrement dit, une chaîne qui peut être convertie en timestamp cast('2018-10-18 13:36:32 CEST' as timestamp)-
'2018-10-18', autrement dit, une chaîne de date current_timestamp() - interval 12 hoursdate_sub(current_date(), 1)- Toute autre expression qui est ou qui peut être convertie en timestamp
-
-
versionest une valeur de type long qui peut être obtenue à partir de la sortie deDESCRIBE HISTORY table_spec.
Ni timestamp_expression ni version ne peuvent être des sous-requêtes.
Exemple
> SELECT * FROM events TIMESTAMP AS OF '2018-10-18T22:15:12.013Z'
> SELECT * FROM events VERSION AS OF 123
Syntaxe @
Utilisez la syntaxe @ pour spécifier le timestamp ou la version. Le timestamp doit être au format yyyyMMddHHmmssSSS. Vous pouvez spécifier une version après @ en ajoutant v à la version. Par exemple, pour interroger la version 123 de la table events, spécifiez events@v123.
Exemple
> SELECT * FROM events@20190101000000000
> SELECT * FROM events@v123
Exemples
-- 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
Articles connexes
- Clause CLUSTER BY
- Expression de table commune (CTE)
- Clause DISTRIBUTE BY
- Clause GROUP BY
- Clause HAVING
- Clause QUALIFY
- Indicateurs
- Clause VALUES
- JOIN
- Clause LATERAL VIEW
- Clause LIMIT
- Clause OFFSET
- Clause ORDER BY
- Clause PIVOT
- Requête
- Clause SELECT
- Opérateurs de jeu
- Clause SORT BY
- Clause étoile
- Clause TABLESAMPLE
- Fonction table (TVF)
- Référence de table
- Clause UNPIVOT
- Clause WHERE
- Clause WINDOW
- Fonctions de fenêtre