Documentaciónmax_en_campo(tabla, campo)

max_en_campo(tabla,campo)\texttt{max\_en\_campo}(tabla, campo)

Nombre

max_en_campo - Devuelve el mayor valor encontrado en un campo de la tabla.

Sinopsis

maximo = tablas.max_en_campo(tabla, campo)

Descripcion

Recorre una TABLA y compara los valores del campo indicado para obtener el mayor de ellos.

En esta version soporta campos de tipo NUMERICO y STRING.

Esta funcion es polimorfica: retorna un valor del mismo tipo escalar que tenga el campo inspeccionado.

Es util para:

  • encontrar el mayor valor numerico de una columna
  • obtener el valor maximo segun orden lexicografico en campos de texto
  • resumir rapidamente extremos de una tabla

Comportamiento

  • Detecta el tipo real del campo usando TIPO_DATO(tabla, campo).
  • Toma el primer valor como referencia inicial y compara el resto.
  • Retorna el mayor valor encontrado.
  • Si el campo no existe o tiene un tipo no soportado, produce error.

Funciones API relacionadas

  • tablas.contar_todos()
  • tablas.agrupar_por_campo()
  • tablas.contar()
  • tablas.valores_distintos()
  • tablas.buscar_distintos()
  • tablas.min_en_campo()
  • tablas.totaliza_campo()
  • tablas.promedio_campo()

Parámetros

ParámetroTipoDescripción
tablaTABLATabla a analizar.
campoSTRINGCampo numérico.

Valor de retorno

ANY - Mayor valor encontrado en el campo. El retorno es polimorfico: si el campo es NUMERICO, devuelve NUMERICO; si el campo es STRING, devuelve STRING.

Ejemplo

ejemplo.blox
INCLUIR "tablas.api"


FUNCION PRINCIPAL
INICIO

	TABLA  persona, filtrado
	NUMERICO i, max
	STRING campo, max_str



    persona = {
        nombre = "Carlos",
        edad = 30,
        ciudad = "Asuncion"
    }
    persona = {
        nombre = "Juan",
        edad = 21,
        ciudad = "Encarnacion"
    }
    persona = {
        nombre = "Roberto",
        edad = 45,
        ciudad = "Concepcion",
        activo = VERDADERO
    }
    persona = {
        nombre = "Maria",
        edad = 19,
        ciudad = "Concepcion"
    }



//
// Testado OK
//
// Halla el registro con el maximo valor en un cierto campo. 
//

    campo = "nombre"
	max_str = tablas.max_en_campo(persona, campo)
    filtrado = tablas.filtrar(persona, campo, max_str)

    IMPRIMIR("\nEl mayor valor de campo en todos los registros de la tabla es: ", max_str)
    IMPRIMIR("\nEl registro con la mayor edad es:\n", filtrado[1])

    max_str = tablas.min_en_campo(persona, campo)
    filtrado = tablas.filtrar(persona, campo, max_str)


    IMPRIMIR("\n\nEl menor valor en todos los registros de la tabla es: ", max_str)
    IMPRIMIR("\nEl registro con la menor edad es:\n", filtrado[1])

FINAL