Skip to main content
Announcements
Qlik Introduces a New Era of Visualization! READ ALL ABOUT IT
cancel
Showing results for 
Search instead for 
Did you mean: 
Anonymous
Not applicable

Conteo igual a un valor

Hola,

Tengo una duda "sencilla", pero que no consigo saber como resolver.  Hago un count y quiero que sea igual a un valor, en un rango de valores o superior a un valor. La idea es la siguiente:

       Count (id ) = 1

       Count (id) > 2  and  < 5

      count (id) > 5

No se si hay que usar aggr o no, y cual seria la sintaxis correcta. Ya que es algo que creo que nunca he tenido que usar

     

Un saludo

1 Solution

Accepted Solutions
rubenmarin

Hola Jonay, si lo he entendido bien estas expresiones podrían funcionar:

1: Sum(Aggr(If(Count(ID)=1, 1, 0), ID))

2: Sum(Aggr(If(Count(ID)>1 and Count(ID)<=5, 1, 0), ID))

3: Sum(Aggr(If(Count(ID)>5, 1, 0), ID))

View solution in original post

11 Replies
jvitantonio
Luminary Alumni
Luminary Alumni

Hola Jonay, esto puede variar bastante dependiendo de donde quieras usarlo. Que es lo que quieres visualizar y en donde?

Anonymous
Not applicable
Author

Buenas Juan,

En principio quiero hacerlo en una tabla (gráfica) aunque también puede ser que se represente en una gráfica visual

Un saludo

jvitantonio
Luminary Alumni
Luminary Alumni

Jona, podrias dar un ejemplo? Que es lo que quieres hacer si el count(id) = 1? Cual seria la accion?

Anonymous
Not applicable
Author

mmmm accion en si, ninguna, solo quiero realizar un conteo. Intento detallar:

Quiero hacer una tabla de la siguiente manera

    = 1   , entre 2 y 5,  > 5

       20,       40,       33

es decir, quiero que me realice el conteo , y para ello pretendia crear una expresion para cada una de las cosas que quiero contabilizar. En este caso tendria que crear 3 expresiones diferentes, siendo cada expresión una columna de mi tabla.

Lo que tendria que hacer es un conteo,  count(ID) = 1, iria clasificado en la primera columna  si count(ID) >= 2 y <= 5, iria clasificado en la segunda, y si count(ID) > 5 iria clasificado en la tercera columna

Espero haber aclarado mi problema

Un saludo

rubenmarin

Hola Jonay, si lo he entendido bien estas expresiones podrían funcionar:

1: Sum(Aggr(If(Count(ID)=1, 1, 0), ID))

2: Sum(Aggr(If(Count(ID)>1 and Count(ID)<=5, 1, 0), ID))

3: Sum(Aggr(If(Count(ID)>5, 1, 0), ID))

jvitantonio
Luminary Alumni
Luminary Alumni

Hola Jonay, el problema es que falta informacion para contestar tu pregunta.

Si tu campo ID es efectivamente un ID, el mismo se veria de la siguiente manera:

ID

AAAAAA1223

AAAAAA0014

AAAAAA5489

AAAAAA14789

El ID por si solo, no tiene ningun sentido, sino que lo importante es la dimension y eso es lo que estoy tratando de entender.

Por otro lado, si tu campo ID es un numero:

ID

1

4

10

22

puedes llegar a hacer lo que menciones, pero esto sin otro campo que te sirva de dimension no tiene sentido.

Saludos

Juan

Anonymous
Not applicable
Author

Buenas Ruben y Juan,

Voy a intentar explicarlo bien, porque por aqui es complejo de explicar a veces las cosas y si yo por defecto(incoscientemente)  omito algun detalle se hace más complicado.

Tengo 2 campos que considero ID, en ambos casos son números.

Ambos ID son numéricos. Yo pongo un ejemplo

ID1 =  9999     ID2 = 123456,123457,1256788,45678990

Esto para mi significa

count(ID) = 4, por tanto iria clasificado en el grupo de 4

Yo no tengo que poner ninguna dimension en la tabla, sino que basta con hacer los conteos

ID1 = 6786      count(ID2) = 5

ID1 = 3456      count(ID2) = 4

ID1 = 9876      count(ID2) = 6

La solución que me da Ruben, me permite realizar los conteos de forma correcta. Me cuenta los ID2 igual a un valor  que le ponga, agrupado por ID1 y si cumple la condicion de valor me lo pone a 1, para que pueda realizar la suma y me de el total que busco

1: Sum(Aggr(If(Count(ID2)=1, 1, 0), ID1))

2: Sum(Aggr(If(Count(ID2)>1 and Count(ID2)<=5, 1, 0), ID1))

3: Sum(Aggr(If(Count(ID2)>5, 1, 0), ID1))

Muchas gracias a ambos

Un saludo

Anonymous
Not applicable
Author

Buenas Ruben, una duda a raiz de la solución que me distes y que no habia tenido en cuenta.

La solución que tu me distes funciona perfecta para un día concreto, pero en el caso de que seleccione un periodo mayor no funciona y te explico porque

Sum(Aggr(If(Count(ID2)=1, 1, 0), ID1))  El ID1, a pesar de ser único puede darse algun caso que  yo vea que hagan que no me funcione,  para fechas diferentes de el mismo conteo


ID1 = 9999   count(ID2) = 1  fecha = 23/11/2015


ID1 = 9999 count(ID2) = 1    fecha = 24/11/2015


En ese caso para un mismo ID, me lo estaria contabilizando como 2. Como solucion a esto le añadi el campo fecha


Sum(Aggr(If(Count(ID2)=1, 1, 0), ID1,fecha))   --> pero creo que esto no funciona ( no me cuadran los cálculos)


Intente poner la clausula distinct, pero no la reconoce tal cual esta la expresión


¿Alguna sugerencia?



Un saludo


rubenmarin

Hola Jonay, ¿el distinct lo habías puesto en el count? prueba si así devuelve el resultado que esperas:

Sum(Aggr(If(Count(Distinct ID2)=1, 1, 0), ID1))