CROSSJOIN |
Jointure croisée |
| DAX (Data Analysis Expressions) |
Syntaxe
|
CROSSJOIN(table, tablen[, tablen]...)
|
Paramètres
| Nom |
Description |
| table |
Ce paramètre permet de spécifier une table dont les lignes seront combinées avec celles des autres tables pour créer le produit cartésien. |
| tablen |
Ce paramètre permet d'ajouter une ou plusieurs autres tables dont les lignes seront combinées avec celles de la première table et des autres tables fournies. |
Description
Cette fonction permet de retourner une table contenant le produit cartésien de toutes les lignes des tables passées en argument.
Remarques
- Définition et utilité : La fonction CROSSJOIN permet de réaliser une jointure croisée entre deux tables ou plus. Elle génère toutes les combinaisons possibles
des lignes entre les tables fournies en arguments. Cette approche produit un tableau contenant le produit cartésien, utile pour analyser toutes les permutations possibles
d'éléments dans plusieurs tables, par exemple pour des scénarios hypothétiques ou des analyses combinatoires.
- Paramètre table : Le paramètre table correspond à la première table qui servira de base pour le produit cartésien. Chaque ligne de cette
table sera combinée avec toutes les lignes des autres tables fournies en argument. Il est important de choisir soigneusement la table principale pour optimiser les résultats
et la performance.
- Paramètres tablen : Les paramètres tablen permettent d'ajouter une ou plusieurs tables supplémentaires dont les lignes seront combinées avec celles
de la table initiale. Chaque table supplémentaire contribue exponentiellement au nombre de lignes du résultat final, car le produit cartésien multiplie le nombre de lignes
entre toutes les tables.
- Effet sur le nombre de lignes : Le résultat d'un CROSSJOIN est très sensible au nombre de lignes des tables utilisées. Si la table A contient 100 lignes et la
table B 50 lignes, le résultat contiendra 100 × 50 = 5 000 lignes. L'ajout d'une troisième table avec 20 lignes portera le total à 100 × 50 × 20 = 100 000 lignes,
ce qui peut affecter les performances et la lisibilité.
- Utilisation pratique : CROSSJOIN est souvent utilisée pour créer des combinaisons de paramètres dans des simulations ou pour générer des ensembles complets de
scénarios possibles. Par exemple, elle peut combiner toutes les dates avec tous les produits et toutes les régions pour analyser les ventes potentielles dans un modèle
Power BI.
- Différence avec JOIN classique : Contrairement aux jointures classiques (INNER JOIN, LEFT JOIN) associant les lignes selon des conditions spécifiques, CROSSJOIN
ne nécessite aucun critère de correspondance. Toutes les lignes de toutes les tables sont combinées, ce qui produit un tableau complet des combinaisons possibles,
sans filtrage.
- Considérations de performance : L'utilisation de CROSSJOIN peut générer rapidement des tables très volumineuses, surtout si plusieurs tables comportent
de nombreuses lignes. Il est recommandé de filtrer ou de limiter les tables avant la jointure pour éviter des ralentissements importants ou des problèmes de mémoire
dans Power BI ou SSAS.
- Compatibilité avec d'autres fonctions : Le résultat de CROSSJOIN peut être utilisé comme entrée pour d'autres fonctions DAX, comme
SUMX, AVERAGEX, ou FILTER, afin d'appliquer des calculs sur chaque combinaison. Cela rend CROSSJOIN
très puissant pour les analyses multi-dimensionnelles et la création de modèles complexes nécessitant toutes les permutations possibles entre différentes tables.
Dernière mise à jour : Vendredi, le 30 Mai 2025