Description
La fonction UNION
calcule une nouvelle table qui contient toutes les lignes de chacune des deux expressions de table ou plus.
Utilisation
UNION(<Expression de table>, <Expression de table2>, <Expression de table3>)
La fonction union calcule une nouvelle table qui contient toutes les lignes de chacune des deux expressions de table.
- Chaque table doit avoir le même nombre de colonnes.
- Les colonnes sont combinées par position dans leurs tables respectives.
- Les noms de colonne dans la table de retour correspondront aux noms de colonne du premier argument de table.
- Les lignes en double sont conservées.
- La table retournée a un lignage lorsque c'est possible. Par exemple, si la première colonne de chaque table_expression a un lignage vers la même colonne de base C1 dans le modèle, la première colonne du résultat de
l'UNION aura un lignage vers C1. Cependant, si les colonnes combinées ont un lignage vers différentes colonnes de base, ou s'il
y a une colonne d'extension, la colonne résultante dans l'UNION n'aura pas de lignage. - Lorsque les types de données diffèrent, le type de données résultant est déterminé sur la base des règles de coercition de type de données.
- La table retournée ne contiendra pas de colonnes provenant de tables associées.
Exemples
Compter les bénéficiaires uniques à travers plusieurs activités
La fonction UNION est utile pour combiner des informations similaires qui sont stockées dans plusieurs formulaires. Par exemple, si vous gérez un programme qui fournit des formations et des prêts au même groupe de personnes, vous pourriez vouloir savoir combien d'individus uniques vous avez soutenus chaque trimestre.
Si les détails sur les formations et les prêts sont stockés dans des formulaires différents, vous aurez alors besoin de la fonction UNION pour d'abord combiner la liste des bénéficiaires, puis trouver le nombre de bénéficiaires distincts.
Ensuite, vous devez combiner la date et l'ID du bénéficiaire des deux formulaires en utilisant union. Par exemple :
UNION(
SELECTCOLUMNS(participants,
"date", @parent.date,
"beneficiary", participant),
SELECTCOLUMNS(loans,
"date", disbursement_date,
"beneficiary", recipient)) |>
COUNTDISTINCTX(beneficiary)
Dans l'exemple ci-dessus, nous devons d'abord remodeler les deux formulaires, Participants et Prêts, afin qu'ils aient les mêmes champs dans le même ordre. Pour les participants à la formation, la date pertinente provient en fait du formulaire parent et est associée à la formation. Pour les Prêts, nous choisissons d'utiliser la date de décaissement.
La fonction UNION nous donne alors une seule grande et longue liste d'ID de bénéficiaires et la fonction COUNTDISTINCTX compte le nombre d'ID de bénéficiaires uniques.