COUNT

La expresión agregada COUNT permite obtener el número de filas del conjunto de resultados. Esta lección trata de enseñarle cómo aplicar esta expresión en la sentencia de lectura SELECT.

  • Sintaxis

… { COUNT( DISTINCT col )
| COUNT( * )
| COUNT(*) } … .

  • Efecto

Cualquier columna de la tabla se puede incluir en la sentencia SELECT como argumento de la expresión agregada. En las expresiones agregadas, un único valor se calcula en varias filas (tenga en cuenta que la adición DISTINCT excluye los valores dobles en el cálculo).

  • COUNT( DISTINCT col )

COUNT (DISTINCT col) determina el número de valores diferentes en columna col en el conjunto de resultados o en el grupo actual.

  • COUNT( * )

COUNT ( * ) o COUNT (*) determina el número de filas en el conjunto de resultados o en el grupo actual. No se especifica ningún identificador de columna en este caso.

  • Aplicación práctica

En la lógica de un programa ejecutable realizamos una selección de datos en la tabla ZSPFLISA00001 obteniendo el contador de los registros con el código de la compañía aérea JL.

  1. Implementamos el código fuente.
  2. Ejecutamos el programa.
  • Notas
  • Si la adición FOR ALL ENTRIES se utiliza antes de WHERE, o si se incluyen las tablas cluster o pool después de FROM, no se pueden utilizar expresiones agregadas aparte de COUNT (*). En casos como estos, la expresión agregada no se evalúa en la base de datos, sino que se emula en el servidor de aplicaciones.
  • Las columnas del tipo STRING o RAWSTRING no se pueden manejar con funciones agregadas.
  • Cuando se utilizan expresiones agregadas, la instrucción SELECT omite el buffer intermedio de SAP
  • Los valores nulos no se incluyen en el cálculo para las funciones agregadas. El resultado es un valor nulo sólo si todas las filas de la columna en cuestión contienen un valor nulo.
  • Si sólo se utilizan expresiones agregadas después de SELECT, el conjunto de resultados tiene sólo una fila y la adición GROUP BY no es necesaria.
  • Si sólo se utilizan funciones agregadas sin GROUP BY, el conjunto de resultados también contiene una fila si no se encuentran datos en la base de datos. Si se utiliza COUNT (*), la columna en cuestión contiene el valor 0. Las columnas de las otras funciones de agregación contienen valores iniciales. Esta fila se asigna al objeto de datos especificado después de INTO y, a menos que se utilice sólo COUNT (*), sy-subrc se establece en 0 y sy-dbcnt se establece en 1.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *