The ultimate Microsoft Fabric, Power BI, Azure AI, and SQL learning event: Join us in Stockholm, September 24-27, 2024.
Save €200 with code MSCUST on top of early bird pricing!
Find everything you need to get certified on Fabric—skills challenges, live sessions, exam prep, role guidance, and more. Get started
Lo que estoy tratando de hacer es bastante involucrado (para mí al menos), así que esto podría ser interesante para los solución más experimentados
Tengo (entre otros) las tres tablas siguientes:
DimGroups[groupID] <-> DimGroupsUsers[groupID, userID] <-> DimUsers[userID]
donde las flechas indican las relaciones (activas) y los valores entre corchetes las dimensiones relacionadas
(con un ligero mal uso del central, pero supongo que obtendrá el punto)
A continuación, las instantáneas de las dos primeras tablas filtradas para customerID-20
DimGroups
y DimGroupsUsers
Para todos los clientes hay al menos un grupo padre y varios grupos (20_1 y 20_2 en el ejemplo anterior)
Sé (de DimGroups)que un grupo es un grupo padre si no tiene groupID de padre (20_1, 20_2).
Desde DimGroupsUsers puedo calcular el número de usuarios dentro de cada grupo o contexto. Pero hay algunas advertencias
Todos los grupos siempre pertenecen al menos a un grupo padre,
Los usuarios pueden pertenecer a uno o varios grupos y al grupo padre correspondiente, o
Los usuarios pueden pertenecer a un grupo, pero no a un grupo paterno y viceversa
las instantáneas anteriores muestran un ejemplo de este último caso:
los usuarios 20_3, 20_5 y 20_8 no pertenecen a ningún grupo, sino sólo a grupos de padres,
los grupos 20_4, 20_6, 20_7, 20_10, 20_11, 20_13, 20_14 están vacíos y
fathergroup 20_1 contiene tres usuarios y fathergroup 20_2 contiene 7 usuarios (las 7 filas superiores de DimGroupsUsers)
Quiero calcular es el número de usuarios dentro de cada grupo y grupo paterno
Idealmente, quiero poder mostrar esto usando el visual Sunburst (un donout de varias capas)
Esto es lo que hice:
Primero creé la columna inGroup en DimGroupsUsers con la siguiente fórmula:
Luego, en DimGroups, pensé en calcular el número de usuarios dentro de cada grupo o grupo padre
con una columna calculadautilizando la siguiente fórmula:
Solved! Go to Solution.
Podría equivocarme, pero tal vez intentar:
Podría equivocarme, pero tal vez intentar:
Gracias por la solución Greg.
Desgraciadamente me acabo de dar cuenta de que la solución funciona bien para el caso de ejemplo
Me presenté en el post original, pero no para otros.
Por ejemplo, en el caso opuesto, donde todos los usuarios están en el mismo grupo paterno,
la fórmula cuenta dos veces a los usuarios en el grupo paterno
(aquí Contexto es la definición de grupo paterno de la empresa)
En esta situación, el gráfico de doble donout mostrará un grupo padre
que contiene el doble de usuarios y un grupo de contexto independiente que contiene
exactamente el mismo número de usuarios que en los otros grupos, mientras que el
Se supone que el grupo de contexto es un grupo ficticio que recopila a todos los usuarios
no asignado a un grupo paterno
Para remediar esto, pensé en hacer lo siguiente:
agregar una medida en la tabla DimGroupsUsers
para calcular el número de usuarios dentro de grupos, utilizando el siguiente
y luego modificar la solución como esta
Poblaciones ?
var contpop á CALCULATE(
IF(
DISTINCTCOUNT(DimGroupsUsers[userID])-0,
0,
DISTINCTCOUNT(DimGroupsUsers[userID])
),
FILTER(ALLNOBLANKROW(DimGroups), DimGroups[groupID]-EARLIER(DimGroups[groupID])),
FILTER(ALLNOBLANKROW(DimGroupsUsers), NOT(DimGroupsUsers[inGroup]))
)
var groupop - CALCULATE(
IF(
DISTINCTCOUNT(DimGroupsUsers[userID])-0,
0,
DISTINCTCOUNT(DimGroupsUsers[userID])
),
FILTER(ALLNOBLANKROW(DimGroups), DimGroups[groupID]-EARLIER(DimGroups[groupID])),
FILTER(ALLNOBLANKROW(DimGroupsUsers), DimGroupsUsers[inGroup])
)
devolver IF(
ISBLANK(DimGroups[fatherGroupID]),
IF(contpop <> [UsersInGroupsRole], contpop, 0),
IF(
CONTIENE(
DimGroupsUsers,
DimGroupsUsers[groupID],
DimGroups[groupID]
),
groupop,
0
)
)
Sin embargo, recibo el siguiente mensaje de error:
Se detectó una dependencia circular: DimGroups[Poblaciones]
¿Alguna idea de cómo resolver esto? Muchas gracias
Join the community in Stockholm for expert Microsoft Fabric learning including a very exciting keynote from Arun Ulag, Corporate Vice President, Azure Data.
Check out the August 2024 Power BI update to learn about new features.