Amazon Redshift ne prendra plus en charge la création de nouvelles fonctions Python définies par l’utilisateur à compter du 1er novembre 2025. Si vous souhaitez utiliser des fonctions Python définies par l’utilisateur, créez-les avant cette date. Les fonctions Python définies par l’utilisateur existantes continueront de fonctionner normalement. Pour plus d’informations, consultez le billet de blog
Clause FROM
La clause FROM d’une requête répertorie les références de table (tables, vues et sous-requêtes) à partir desquelles les données sont sélectionnées. Si plusieurs références de table sont répertoriées, les tables doivent être jointes, à l’aide de la syntaxe appropriée de la clause FROM ou de la clause WHERE. Si aucun critère de jointure n’est spécifié, le système traite la requête comme jointure croisée (produit cartésien).
Rubriques
Syntaxe
FROM table_reference [, ...]
où table_reference est l’une des références suivantes :
with_subquery_table_name [ table_alias ] table_name [ * ] [ table_alias ] ( subquery ) [ table_alias ] table_reference [ NATURAL ] join_type table_reference [ ON join_condition | USING ( join_column [, ...] ) ] table_reference join_type super_expression [ ON join_condition ] table_reference PIVOT ( aggregate(expr) [ [ AS ] aggregate_alias ] FOR column_name IN ( expression [ AS ] in_alias [, ...] ) ) [ table_alias ] table_reference UNPIVOT [ INCLUDE NULLS | EXCLUDE NULLS ] ( value_column_name FOR name_column_name IN ( column_reference [ [ AS ] in_alias ] [, ...] ) ) [ table_alias ] UNPIVOT expression AS value_alias [ AT attribute_alias ] ( super_expression.attribute_name ) AS value_alias [ AT index_alias ] UNNEST ( column_reference ) [AS] table_alias ( unnested_column_name ) UNNEST ( column_reference ) WITH OFFSET [AS] table_alias ( unnested_column_name, [offset_column_name] )
table_alias (facultatif) peut être utilisé pour donner des noms temporaires aux tables et aux références de tables complexes et, si vous le souhaitez, à leurs colonnes également, comme suit :
[ AS ] alias [ ( column_alias [, ...] ) ]
Paramètres
- with_subquery_table_name
-
Table définie par une sous-requête dans la Clause WITH.
- table_name
-
Nom d’une table ou d’une vue.
- alias
-
Nom alternatif temporaire d’une table ou d’une vue. Un alias doit être fourni pour une table dérivée d’une sous-requête. Dans les autres références de table, les alias sont facultatifs. Le mot-clé AS est toujours facultatif. Les alias de table offrent un raccourci pratique pour identifier les tables dans d’autres parties d’une requête, telles que la clause WHERE. Par exemple :
select * from sales s, listing l where s.listid=l.listid - alias_colonne
-
Nom alternatif temporaire pour une colonne dans une table ou une vue.
- sous-requête
-
Une expression de requête qui correspond à une table. La table existe uniquement pendant la durée de la requête et reçoit généralement un nom ou un alias. Toutefois, l’alias n’est pas obligatoire. Vous pouvez aussi définir des noms de colonnes pour les tables qui proviennent de sous-requêtes. Il est important de nommer les alias de colonne lorsque vous souhaitez joindre les résultats des sous-requêtes à d’autres tables et lorsque vous voulez sélectionner ou limiter les colonnes ailleurs dans la requête.
Une sous-requête peut contenir une clause ORDER BY, mais cette clause peut n’avoir aucun effet si une clause LIMIT ou OFFSET n’est pas également spécifiée.
- NATURAL
-
Définit une jointure qui utilise automatiquement toutes les paires de colonnes portant le même nom dans les deux tables comme colonnes de jointure. Aucune condition de jointure explicite n’est nécessaire. Par exemple, si les tables CATEGORY et EVENT ont toutes deux des colonnes nommées CATID, une jointure naturelle des tables est une jointure sur leurs colonnes CATID.
Note
Si une jointure NATURAL est spécifiée, mais qu’il n’y a aucune paire de colonnes portant le même nom dans les tables à joindre, la requête se résout par défaut en une jointure croisée.
- join_type
-
Spécifiez l’un des types de jointure suivants :
-
[INNER] JOIN
-
LEFT [OUTER] JOIN
-
RIGHT [OUTER] JOIN
-
FULL [OUTER] JOIN
-
CROSS JOIN
Les jointures croisées sont des jointures non qualifiées ; elles renvoient le produit cartésien des deux tables.
Les jointures internes et externes sont des jointures qualifiées. Elles sont qualifiés implicitement (en jointures naturelles), avec la syntaxe ON ou USING de la clause FROM, ou avec une condition de clause WHERE.
Une jointure interne renvoie les lignes correspondantes uniquement, en fonction de la condition de jointure ou d’une liste de colonnes de jointure. Une jointure externe renvoie toutes les lignes que la jointure interne équivalente renvoyerait, plus les lignes non correspondantes de la table de « gauche », de la table de « droite » ou des deux tables. La table de gauche est la première table de la liste et la table de droite la deuxième table. Les lignes non correspondantes contiennent des valeurs NULL pour combler les écarts dans les colonnes de sortie.
-
- ON condition_jointure
-
Type de spécification de jointure où les colonnes de jointure sont définies comme condition qui suit le mot-clé ON. Par exemple :
sales join listing on sales.listid=listing.listid and sales.eventid=listing.eventid - USING ( colonne_jointure [, ...] )
-
Type de spécification de jointure où les colonnes de jointure sont affichées entre parenthèses. Si plusieurs colonnes de jointure sont spécifiées, elles sont séparées par des virgules. Le mot-clé USING doit précéder la liste. Par exemple :
sales join listing using (listid,eventid) - PIVOT
-
Fait pivoter la sortie des lignes vers les colonnes, dans le but de représenter les données tabulaires dans un format facile à lire. La sortie est représentée horizontalement sur plusieurs colonnes. PIVOT est similaire à une requête GROUP BY avec une agrégation, utilisant une expression agrégée pour spécifier un format de sortie. Toutefois, contrairement à GROUP BY, les résultats sont renvoyés sous forme de colonnes plutôt que de lignes.
Pour bénéficier d’exemples montrant comment interroger avec PIVOT et UNPIVOT, consultez Exemples PIVOT et UNPIVOT.
- UNPIVOT
-
Rotation de colonnes vers des lignes avec UNPIVOT : l’opérateur UNPIVOT transforme les colonnes de résultats, d’une table d’entrée ou de résultats de requête, en lignes, pour faciliter la lecture de la sortie. UNPIVOT combine les données de ses colonnes d’entrée en deux colonnes de résultats : une colonne de noms et une colonne de valeurs. La colonne de noms contient les noms de colonnes provenant de l’entrée, sous forme d’entrées de ligne. La colonne de valeurs contient des valeurs provenant des colonnes d’entrée, telles que les résultats d’une agrégation. Par exemple, le nombre d’éléments dans différentes catégories.
Dépivotement de l’objet avec UNPIVOT (SUPER) : vous pouvez effectuer le dépivotement d’un objet, où expression est une expression SUPER faisant référence à un autre élément de la clause FROM. Pour plus d’informations, consultez Dépivotement d’objet. Il contient également des exemples montrant comment interroger des données semi-structurées telles que des données au format JSON.
- super_expression
-
Expression SUPER valide. Amazon Redshift renvoie une ligne pour chaque valeur de l’attribut spécifié. Pour plus d’informations sur le type de données SUPER, consultez Type SUPER. Pour plus d’informations sur les valeurs SUPER désimbriquées, consultez Désimbriquer des requêtes.
- attribute_name
-
Nom d’un attribut dans l’expression SUPER.
- index_alias
-
Alias pour l’index qui indique la position de la valeur dans l’expression SUPER.
- UNNEST
-
Étend une structure imbriquée, généralement un tableau SUPER, en colonnes contenant les éléments désimbriqués. Pour plus d’informations sur la désimbrication des données SUPER, consultez Interrogation de données semi-structurées. Pour obtenir des exemples, veuillez consulter Exemples de UNNEST.
- unnested_column_name
-
Nom de la colonne qui contient les éléments désimbriqués.
- UNNEST ... WITH OFFSET
-
Ajoute une colonne de décalage à la sortie désimbriquée, le décalage représentant l’indice de base zéro de chaque élément du tableau. Cette variante est utile lorsque vous souhaitez voir la position des éléments dans un tableau. Pour plus d’informations sur la désimbrication des données SUPER, consultez Interrogation de données semi-structurées. Pour obtenir des exemples, veuillez consulter Exemples de UNNEST.
- offset_column_name
-
Nom personnalisé pour la colonne de décalage qui vous permet de définir explicitement la manière dont la colonne d’index apparaîtra dans la sortie. Ce paramètre est facultatif. Par défaut, le nom de la colonne de décalage est
offset_col.
Notes d’utilisation
Les colonnes de jointure doivent avoir des types de données comparables.
Une jointure NATURAL ou USING conserve seulement l’une de chaque paire de colonnes de jointure dans le jeu de résultats intermédiaire.
Une jointure avec la syntaxe ON conserve les deux colonnes de jointure dans son jeu de résultats intermédiaire.
Voir aussi Clause WITH.