UNION

Este artículo se ha traducido del inglés mediante IA y puede contener errores. Sus comentarios nos ayudarán a mejorar.

Descripción

La función UNION calcula una nueva tabla que contiene todas las filas de cada una de las dos o más expresiones de tabla.

Uso

UNION(<Expresión de tabla>, <Expresión de tabla 2>, <Expresión de tabla 3>)

La función de unión calcula una nueva tabla que contiene todas las filas de cada una de las dos expresiones de tabla.

  • Cada tabla debe tener el mismo número de columnas.
  • Las columnas se combinan por su posición en sus respectivas tablas.
  • Los nombres de las columnas en la tabla devuelta coincidirán con los nombres de las columnas en el primer argumento de la tabla.
  • Las filas duplicadas se conservan.
  • La tabla devuelta tiene linaje cuando es posible. Por ejemplo, si la primera columna de cada table_expression tiene linaje a la misma columna base C1 en el modelo, la primera columna en el resultado de
    UNION tendrá linaje a C1. Sin embargo, si las columnas combinadas tienen linaje a diferentes columnas base, o si
    hay una columna de extensión, la columna resultante en UNION no tendrá linaje.
  • Cuando los tipos de datos difieren, el tipo de dato resultante se determina según las reglas de coerción de tipos de datos.
  • La tabla devuelta no contendrá columnas de tablas relacionadas.

Ejemplos

Contar beneficiarios únicos en múltiples actividades

La función UNION es útil para combinar información similar que está almacenada en múltiples formularios. Por ejemplo, si está gestionando un programa que ofrece capacitación y préstamos al mismo grupo de personas, podría interesarle saber a cuántas personas únicas ha apoyado cada trimestre.

Si los detalles sobre la capacitación y los préstamos se almacenan en formularios diferentes, entonces necesitará la función UNION para combinar primero la lista de receptores y luego encontrar el número de beneficiarios distintos.

Diseño de la base de datos que contiene los formularios de capacitaciones, participantes, préstamos y beneficiarios
Diseño de la base de datos que contiene los formularios de capacitaciones, participantes, préstamos y beneficiarios

Luego, necesita combinar la fecha y el ID del beneficiario de los dos formularios usando union. Por ejemplo:

UNION(
	SELECTCOLUMNS(participants, 
      "date", @parent.date, 
      "beneficiary", participant),
    SELECTCOLUMNS(loans,
	  "date", disbursement_date,
	  "beneficiary", recipient)) |>
COUNTDISTINCTX(beneficiary)

En el ejemplo anterior, primero tenemos que remodelar los dos formularios, Participantes y Préstamos, para que tengan los mismos campos en el mismo orden. Para los participantes de la capacitación, la fecha relevante proviene en realidad del formulario padre y está asociada con la capacitación. Para los Préstamos, elegimos usar la fecha de desembolso.

La función UNION nos da una gran lista de IDs de beneficiarios y la función COUNTDISTINCTX cuenta el número de IDs de beneficiarios únicos.

Siguiente elemento
Cómo hacerlo