Contraer grupos de filas (Visual Database Tools)

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. Cuando se contraen filas, conviene tener en cuenta lo siguiente:

  • 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 anterior 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
    

    Es evidente que la consulta anterior 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 elementos duplicados en el conjunto de resultados original y que cada fila siga describiendo una ciudad, puede crear una consulta que devuelva únicamente filas diferentes. 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, vea Cómo excluir filas duplicadas (Visual Database Tools).

  • 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, vea Resumir los resultados de una consulta (Visual Database Tools) y Ordenar y agrupar los resultados de una consulta (Visual Database Tools).

  • 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, vea Cómo especificar condiciones para grupos (Visual Database Tools) y Cómo utilizar cláusulas HAVING y WHERE en la misma consulta (Visual Database Tools).