Compartir a través de


Contraer grupos de filas (Visual Database Tools)

se aplica a:sql Server

Puede crear un resultado de consulta en el que cada fila de resultados corresponde a un grupo completo de filas de los datos originales. Cuando se contraen filas, conviene tener en cuenta lo siguiente:

  • Puede eliminar filas duplicadas Algunas consultas pueden crear conjuntos de resultados en los que aparecen varias filas idénticas. Por ejemplo, puede crear un conjunto de resultados en el que cada fila contiene la ciudad y el nombre de estado de una ciudad que contiene un autor, pero si una ciudad contiene varios autores, hay varias filas idénticas. El código SQL resultante podría tener este aspecto:

    SELECT city,
           state
    FROM authors;
    

    El conjunto de resultados generado por la consulta anterior no es muy útil. Si una ciudad contiene cuatro autores, el conjunto de resultados incluye cuatro filas idénticas. Dado que el conjunto de resultados no incluye ninguna columna que no sea ciudad y estado, no hay ninguna manera de distinguir las filas idénticas entre sí. Una manera de evitar estas filas duplicadas es incluir columnas adicionales que pueden hacer que las filas sean diferentes. Por ejemplo, si incluye el nombre del autor, cada fila es diferente (siempre que no haya dos autores con nombre similar en directo dentro de una ciudad). El código SQL resultante podría tener este aspecto:

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

    Por supuesto, la consulta anterior elimina el síntoma, pero realmente no resuelve el problema. Es decir, el conjunto de resultados no tiene duplicados, pero ya no es un conjunto de resultados sobre las ciudades. Para eliminar duplicados en el conjunto de resultados original y seguir teniendo cada fila que describa una ciudad, puede crear una consulta que devuelva solo filas distintas. El código SQL resultante podría tener este aspecto:

    SELECT DISTINCT city,
                    state
    FROM authors;
    

    Para obtener más información sobre cómo eliminar duplicados, consulte Excluir filas duplicadas.

  • Puede calcular en 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 contiene la ciudad y el nombre de estado de una ciudad que contiene un autor, además de un recuento del número de autores contenidos en esa ciudad. El código SQL resultante podría tener este aspecto:

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

    Para obtener más información sobre el cálculo de grupos de filas, consulte Resumen de los resultados de la consulta y Ordenar y agrupar los resultados de la consulta.

  • Puede usar criterios de selección para incluir grupos de filas Por ejemplo, puede crear un conjunto de resultados en el que cada fila contiene la ciudad y el nombre de estado de una ciudad que contiene varios autores, además de un recuento del número de autores contenidos en esa ciudad. El código SQL resultante podría tener este aspecto:

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

    Para obtener más información sobre cómo aplicar criterios de selección en grupos de filas, vea Especificar condiciones para grupos y Usar cláusulas HAVING y WHERE en la misma consulta.