Quiero contar el número de elementos distintos en una columna sujetos a una determinada condición, por ejemplo, si la tabla es así:
tag | entryID
----+---------
foo | 0
foo | 0
bar | 3
Si quiero contar el número de etiquetas distintas como "recuento de etiquetas" y contar el número de etiquetas distintas con ID de entrada> 0 como "recuento de etiquetas positivas" en la misma tabla, ¿qué debo hacer?
Ahora estoy contando desde dos tablas diferentes donde en la segunda tabla solo seleccioné aquellas filas con entryID mayor que cero. Creo que debería haber una forma más compacta de resolver este problema.
Pruebe la siguiente declaración:
El primer campo será la etiqueta, el segundo será el conteo completo y el tercero será el conteo de los positivos.
fuente
Esto puede funcionar:
y
fuente
Esto también puede funcionar:
Necesita la condición entryID en la combinación izquierda en lugar de en una cláusula where para asegurarse de que cualquier elemento que solo tenga un entryID de 0 se cuente correctamente en el primer DISTINCT.
fuente
El código cuenta la combinación única / distinta de etiqueta e ID de entrada cuando [ID de entrada]> 0
En la salida mostrará el recuento de valores únicos Espero que esto ayude
fuente