Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
Syndicate_Admin
Administrator
Administrator

Recuento Frecuencia de la medida sobre X en una tabla grande

Estoy tratando de evaluar cuántos sitios de noticias de parches obtienen más de 1000 publicaciones al año (según la fecha de creación de la publicación). Estoy tratando con una tabla de 100 m de fila.

¿Alguien puede ver razones obvias por las que lo siguiente no se filtra en _Threshold?

Count # Sites > 1000 Posts = 
VAR _Threshold = 1000
VAR _Measure = 
CALCULATE( 
     COUNTAX( 
            KEEPFILTERS(VALUES(AllContent[patch_id])),     
            [#Posts|Distinct]>_Threshold), 
     USERELATIONSHIP(DimDate[Date], AllContent[date_create])) 

RETURN
_Measure    


Estoy tratando de evitar una medida de tabla virtual más "costosa" de memoria como la siguiente, que toma tanta memoria que ni siquiera puedo decir si funciona (pero debería).

Count # Sites > 1000 Posts = 
VAR _Threshold = 1000
VAR _MyTable = 
SUMMARIZE(AllContent, AllContent[patch_id], "@Posts", if( [#Posts|Distinct]>_Threshold,1,0 ))
RETURN
COUNTX(_mytable, [@Posts])

2 ACCEPTED SOLUTIONS
Syndicate_Admin
Administrator
Administrator

Hay @charleshale ,

De acuerdo con su descripción, creo una muestra.

vkalyjmsft_0-1642045097947.png

Si establezco que el umbral es 1, el resultado esperado será 2 (A y B).

Aquí está mi fórmula de medida.

Count # Sites > 1 Posts = 
VAR _Threshold = 1
VAR _COUNT =
    CALCULATE (
        DISTINCTCOUNT ( 'Table'[Patch_id] ),
        FILTER (
            'Table',
            CALCULATE (
                COUNT ( 'Table'[Merged] ),
                ALLEXCEPT ( 'Table', 'Table'[Patch_id] )
            ) > _Threshold
        )
    )
RETURN
    _COUNT

Obtenga el resultado esperado.

vkalyjmsft_1-1642045299427.png

Adjunto mi muestra a continuación como referencia.

Saludos
Equipo de apoyo a la comunidad _ kalyj

Si esta publicación ayuda,entonces considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.

View solution in original post

Hola. Gracias por la solución. He editado ligeramente y tengo las siguientes dos formulaciones alternativas que funcionan. El siguiente es el más rápido en mi mesa gigante.

Count # Sites 2 = 

    VAR _Threshold = 98

    VAR _MyTable =

        FILTER ( VALUES ( 'Table'[Patch_id] ), 
        CALCULATE(SUM('Table'[Merged]),ALLEXCEPT('Table','Table'[Patch_id])) > _Threshold )  
       -- the above CALCULATE () IS A BASIC COLUMN COUNT THAT CAN BE REPLACED BY A [measure] >_Threshold
    VAR _Result =

        COUNTROWS ( _MyTable )

    RETURN

        _Result

Lo siguiente es un uso intensivo de memoria, pero quizás el código más simple

Count # Sites 3 = 
VAR _Threshold = 98
VAR _MyTable = 
SUMMARIZE('Table','Table'[Patch_id],
"@Posts", If (SUM([Merged]) > _Threshold ,1,0 ))
RETURN
sumx(_MyTable, [@Posts])

Estos producen el resultado expcted de 1 (es decir, solo 1 ID de parche, G, tiene la suma de Merged > 98.

Aquí está el archivo

RECUENTO REVISADO

View solution in original post

5 REPLIES 5
Syndicate_Admin
Administrator
Administrator

Hay @charleshale ,

De acuerdo con su descripción, creo una muestra.

vkalyjmsft_0-1642045097947.png

Si establezco que el umbral es 1, el resultado esperado será 2 (A y B).

Aquí está mi fórmula de medida.

Count # Sites > 1 Posts = 
VAR _Threshold = 1
VAR _COUNT =
    CALCULATE (
        DISTINCTCOUNT ( 'Table'[Patch_id] ),
        FILTER (
            'Table',
            CALCULATE (
                COUNT ( 'Table'[Merged] ),
                ALLEXCEPT ( 'Table', 'Table'[Patch_id] )
            ) > _Threshold
        )
    )
RETURN
    _COUNT

Obtenga el resultado esperado.

vkalyjmsft_1-1642045299427.png

Adjunto mi muestra a continuación como referencia.

Saludos
Equipo de apoyo a la comunidad _ kalyj

Si esta publicación ayuda,entonces considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.

Hola. Gracias por la solución. He editado ligeramente y tengo las siguientes dos formulaciones alternativas que funcionan. El siguiente es el más rápido en mi mesa gigante.

Count # Sites 2 = 

    VAR _Threshold = 98

    VAR _MyTable =

        FILTER ( VALUES ( 'Table'[Patch_id] ), 
        CALCULATE(SUM('Table'[Merged]),ALLEXCEPT('Table','Table'[Patch_id])) > _Threshold )  
       -- the above CALCULATE () IS A BASIC COLUMN COUNT THAT CAN BE REPLACED BY A [measure] >_Threshold
    VAR _Result =

        COUNTROWS ( _MyTable )

    RETURN

        _Result

Lo siguiente es un uso intensivo de memoria, pero quizás el código más simple

Count # Sites 3 = 
VAR _Threshold = 98
VAR _MyTable = 
SUMMARIZE('Table','Table'[Patch_id],
"@Posts", If (SUM([Merged]) > _Threshold ,1,0 ))
RETURN
sumx(_MyTable, [@Posts])

Estos producen el resultado expcted de 1 (es decir, solo 1 ID de parche, G, tiene la suma de Merged > 98.

Aquí está el archivo

RECUENTO REVISADO

Syndicate_Admin
Administrator
Administrator

Gracias, @VahidDM. Ciertamente es algo así.

La tabla de datos se ve así, simplificada: la fecha de la publicación (AllContent[date_create]), un título-fecha-autor con hash para la publicación única (AllContent[Merged]) y el identificador numérico que representa el sitio de noticias local de patch.com en particular (AllContent[patch_id])

charleshale_1-1641779130437.png

En este caso, digamos que establezco el Umbral en > = 2, la medida devolvería el valor 1 porque solo un sitio (10997, que resulta ser el Parche de la Ciudad de Nueva York) tendría más de 2 publicaciones en el marco de tiempo especificado.

La 2ª formulación que hice funciona, pero es demasiado intensiva en memoria. Gracias por cualquier pensamiento!!

Syndicate_Admin
Administrator
Administrator

¿@charleshale

Comprobar [#Posts| Distinto]>_Threshold) en su fórmula.

Cuando se utiliza VALUES y el parámetro de entrada es un nombre de columna, devuelve una tabla de una columna que contiene los valores distintos de la columna especificada. usaste AllContent[patch_id] en la fórmula de valores y luego usaste la otra columna (creo que este es el problema).

¿Puede compartir una muestra de sus datos y el resultado esperado en un formato de texto?


Aprecia tus felicitaciones!!
LinkedIn:
www.linkedin.com/in/vahid-dm/

Gracias, @VahidDM. Ciertamente es algo así.

La tabla de datos se ve así, simplificada: la fecha de la publicación (AllContent[date_create]), un título-fecha-autor con hash para la publicación única (AllContent[Merged]) y el identificador numérico que representa el sitio de noticias local de patch.com en particular (AllContent[patch_id])

charleshale_1-1641779130437.png

En este caso, digamos que establezco el Umbral en > = 2, la medida devolvería el valor 1 porque solo un sitio (10997, que resulta ser el Parche de la Ciudad de Nueva York) tendría más de 2 publicaciones en el marco de tiempo especificado.

La 2ª formulación que hice funciona, pero es demasiado intensiva en memoria. Gracias por cualquier pensamiento!!

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.