Anónimo
¿Existe alguna diferencia entre la función EXCEPT en DAX y Left Join en SQL?
Además, ¿hay alguna diferencia entre la función INTERSECT en DAX y la Inner Join en SQL?
LivioLanzo
EXCEPTO devuelve todas las filas de Table1 que no están en Table2
Tabla1 = A, B, C, D
Tabla2 = B, C, E, F, G
Excepto (Tabla1, Tabla2) = A, D
Excepto Table2, Table1) = E, F, G
La combinación de la izquierda es diferente porque siempre devuelve todas las filas de Table1 y las filas coincidentes de la tabla 2 en otra columna
Table1 Left Join Table2 =
Col1 – Col 2
A – vacío
B – B
C – C
D – vacío
Intersect y Inner Join son más similares porque ambos devuelven solo las filas coincidentes entre table1 y table2
INTERSECT (Tabla1, Tabla2) = B, C
INTERSECT en DAX mira todas las columnas para encontrar coincidencias, mientras que en INNER JOIN en SQL puede especificar en qué columna buscar y lo mismo es cierto para EXCEP y LEFT JOIN.
En Power Query también puede realizar estas uniones fácilmente y especificar las columnas como lo hace en SQL. Mire la función Table.NestedJoin en el sitio web de referencia de M
Anónimo
Respuesta a la P # 1: No
Explicación: EXCEPT devuelve las filas de la tabla del lado izquierdo, que no aparecen en la tabla del lado derecho.
EXCEPTO acepta dos tablas como argumentos, es decir, = EXCEPTO (tabla1, tabla2). Su salida es una tabla que tiene todos los registros de la tabla 1 que no aparecen en la tabla 2. Si hay un registro coincidente, lo ignora. Ejemplo: si Table1 tiene A, B y C y Table2 tiene B, D y F, la tabla de salida solo tendrá A y C. Una combinación izquierda en SQL también habría incluido B. Además, a diferencia de SQL, EXCEPT coincide con registros o filas completos, no con columnas. Para este propósito, table1 y table2 deben tener el mismo número de columnas.
Respuesta a la Pregunta # 2: Más o menos sí.
Explicación: INTERSECT devuelve las filas de la tabla1 que aparecen en la tabla2.
En el ejemplo anterior, solo devolvería B.
Nuevamente, es importante recordar que INTERSECT coincide con registros completos, no con columnas. Por lo tanto, es una unión casi interna, pero no del todo.
LivioLanzo
EXCEPTO devuelve todas las filas de Table1 que no están en Table2
Tabla1 = A, B, C, D
Tabla2 = B, C, E, F, G
Excepto (Tabla1, Tabla2) = A, D
Excepto Table2, Table1) = E, F, G
La combinación de la izquierda es diferente porque siempre devuelve todas las filas de Table1 y las filas coincidentes de la tabla 2 en otra columna
Table1 Left Join Table2 =
Col1 – Col 2
A – vacío
B – B
C – C
D – vacío
Intersect y Inner Join son más similares porque ambos devuelven solo las filas coincidentes entre table1 y table2
INTERSECT (Tabla1, Tabla2) = B, C
INTERSECT en DAX mira todas las columnas para encontrar coincidencias, mientras que en INNER JOIN en SQL puede especificar en qué columna buscar y lo mismo es cierto para EXCEP y LEFT JOIN.
En Power Query también puede realizar estas uniones fácilmente y especificar las columnas como lo hace en SQL. Mire la función Table.NestedJoin en el sitio web de referencia de M