Compartir a través de


Contraer grupos de filas

Puede crear un resultado de consulta en el que cada fila de resultados se corresponda con un grupo de filas completo de los datos originales. Al contraer filas, hay que tener en cuenta varias cosas:

  • Puede eliminar filas duplicadas   Algunas consultas pueden crear conjuntos de resultados en los que aparezcan varias filas idénticas. Por ejemplo, puede crear un conjunto de resultados en el que cada fila contenga la ciudad y el nombre del estado de una ciudad que contiene un autor; pero si una ciudad contiene varios autores, habrá varias filas idénticas. El código SQL resultante puede presentar el siguiente aspecto:

    SELECT city, state
    FROM authors
    

    El conjunto de resultados generado por la consulta precedente no es muy útil. Si una ciudad contiene cuatro autores, el conjunto de resultados incluirá cuatro filas idénticas. Como el conjunto de resultados no incluye otras columnas que no sean ciudad y estado, no hay manera de distinguir las filas idénticas unas de otras. Una manera de evitar filas duplicadas de este tipo es incluir columnas adicionales que pueden hacer que las filas sean diferentes. Por ejemplo, si incluye el nombre del autor, cada fila será diferente (siempre y cuando no haya dos autores que se llamen igual y que vivan en la misma ciudad). El código SQL resultante puede presentar el siguiente aspecto:

    SELECT city, state, fname, minit, lname
    FROM authors
    

    Por supuesto, la consulta precedente elimina el síntoma, pero no soluciona realmente el problema. Es decir, el conjunto de resultados no tiene duplicados, pero ya no es un conjunto de resultados de ciudades. Para eliminar duplicados en el conjunto de resultados original y que aun así cada fila describa una ciudad, puede crear una consulta que devuelva solamente filas distintas. El código SQL resultante puede presentar el siguiente aspecto:

    SELECT DISTINCT city, state
    FROM authors
    

    Para obtener información detallada sobre la eliminación de duplicados, consulte Cómo: Excluir filas duplicadas.

  • Puede calcular por grupos de filas   Es decir, puede resumir información en grupos de filas. Por ejemplo, puede crear un conjunto de resultados en el que cada fila contenga la ciudad y el nombre del estado de una ciudad que contenga un autor, además de un recuento del número de autores que hay en esa ciudad. El código SQL resultante puede presentar el siguiente aspecto:

    SELECT city, state, COUNT(*)
    FROM authors
    GROUP BY city, state
    

    Para obtener información detallada sobre cómo realizar cálculos en grupos de filas, consulte Resumir los resultados de una consulta y Ordenación y agrupación de los resultados de la consulta.

  • Puede utilizar criterios de selección para incluir grupos de filas   Por ejemplo, puede crear un conjunto de resultados en el que cada fila contenga la ciudad y el nombre del estado de una ciudad que contenga varios autores, además de un recuento del número de autores que hay en esa ciudad. El código SQL resultante puede presentar el siguiente aspecto:

    SELECT city, state, COUNT(*)
    FROM authors
    GROUP BY city, state
    HAVING COUNT(*) > 1
    

    Para obtener información detallada sobre la aplicación de criterios de selección en grupos de filas, consulte Cómo: Especificar condiciones para grupos y Cómo: Utilizar cláusulas HAVING y WHERE en la misma consulta.

Vea también

Otros recursos

Especificar criterios de búsqueda

Diseñar consultas y vistas