Contar resultados en vistas usando agregación [cerrado]

30

¿Es posible contar los resultados (por ejemplo, contar los nodos del tipo de contenido x) en una vista, utilizando la agregación (no mediante programación)?

hpn
fuente
3
Claro, simplemente use la agregación y luego seleccione "contar" para su campo "id de nodo".
Uwe
1
Hay un Q&A idéntico en drupal.stackexchange.com/questions/15871/count-of-nodes-by-type , que incluye una exportación de vista lista para usar.
marcvangend

Respuestas:

42

Sí, es posible en Vistas 3 fuera de la caja.
La idea es la misma que en las agregaciones SQL. Veamos un ejemplo:

  1. Edite su vista y habilite las agregaciones de Vistas:
    habilitar agregaciones de Vistas

  2. Eliminar los criterios de ordenación predeterminados.

  3. Agregue los campos “Contenido: Tipo” y “Contenido: Nid”: ingrese la descripción de la imagen aquí
    seleccione la función COUNT para Contenido: Nid: ingrese la descripción de la imagen aquí

Para ver qué sucede, simplemente active la casilla de verificación "Mostrar la consulta SQL" en la página de configuración de Vistas globales.

SELECT node.type AS node_type, COUNT(node.nid) AS nid
FROM 
{node} node
WHERE (( (node.status = '1') ))
GROUP BY node_type
LIMIT 10 OFFSET 0

Entonces, estamos agrupando nodos por node_type y calculando el recuento para estos grupos.

kalabro
fuente
1
Estuve atrapado durante un par de horas, luego, después de leer su publicación, me di cuenta de que tenía una clasificación predeterminada allí. Gracias @kalabro
saadlulu
2
Entonces, ¿cómo está disponible el recuento? ¿Es una variable de token y cómo se puede mostrar?
therobyouknow
Su respuesta es, por supuesto, correcta. Sin embargo, me he quedado atascado al usar Relaciones con referencias de entidad y agregación. Funciona bien si construye un bloque, pero no si crea una página. Cosas raras.
Urb Gim Tam
10

Grandes respuestas aquí, aunque su pregunta original no establece qué va a hacer con el valor de conteo. Presumiblemente, ¿quieres mostrarlo?

Si es así, aquí hay otra solución:

Suponiendo que su Vista ya está configurada para filtrar por elementos de tipo de contenido, también puede agregar un encabezado en la Vista y elegir la opción "Global: Resumen de resultados" y usar las variables de token proporcionadas en el área de texto.

therobyouknow
fuente
Para aclarar, esto extiende la gran solución provista por kalabro, para mostrar un conteo.
therobyouknow
-2

Por si acaso alguien se encuentra con esto.

He utilizado el Vistas Formato de fecha de SQL para dar formato a la fecha de la granularidad.

El módulo Vistas Formato de fecha SQL permite formatear campos de fecha usando SQL. Esto permite la agregación de grupos para campos de fecha utilizando la granularidad elegida.

La funcionalidad principal es eliminar el formato de fecha de render () y ponerlo en query (). Es decir, formatee los valores de fecha utilizando DATE_FORMAT de SQL en lugar de format_date de PHP.

Esto se logra asignando un nuevo controlador predeterminado a los campos de fecha 'creado' y 'modificado' del nodo. Este controlador extiende y anula la construcción de vistas en views_handler_field_date.

Funcionó de inmediato, ¡tan fácil como!

Jeremy
fuente