La función COUNT()

7 comentarios

Esta función agregada nos dice que cantidad de filas cumplen con la condición impuesta.

SELECT
   COUNT(*)
FROM
   PRODUCTOS

Nos dirá cuantas filas tiene la tabla PRODUCTOS.

SELECT
   PRD_PROCED,
   COUNT(*)
FROM
   PRODUCTOS
GROUP BY
   PRD_PROCED

nos dirá la cantidad de productos que hay de cada país de procedencia.

La función COUNT(*) también cuenta a las filas que tienen un valor de NULL en ellas. Para que no sean contadas en lugar de COUNT(*) debemos escribir COUNT(NombreColumna), como en el siguiente ejemplo:

SELECT
   PRD_PROCED,
   COUNT(PRD_PROCED)
FROM
   PRODUCTOS
GROUP BY
   PRD_PROCED

En este caso, se obtendrá la cantidad de productos que hay de cada país de procedencia, pero sin contar a los que tienen un valor de NULL en la columna PRD_PROCED.

 

.

La función AVG()

2 comentarios

Esta función agregada devuelve el promedio de una columna numérica.

SELECT
   COB_CODCLI,         -- Código de nuestro cliente
   AVG(COB_MONTOX)     -- Promedio de lo cobrado a cada cliente
FROM
   COBRANZAS
GROUP BY
   COB_CODCLI

Las letras AVG son abreviatura de la palabra inglesa «average» que traducida al castellano significa «promedio».

IMPORTANTE: La función AVG() no tiene en cuenta las columnas con valores NULL, para esta función dichas filas no existen y por lo tanto no son usadas en el cálculo del promedio.

 

.

 

Ejemplo Nº 048 – Usando funciones (3)

1 comentario

En este ejemplo veremos como usar las funciones:

  • MAX()
  • MIN()
SELECT
   PRD_PROCED,
   MAX(PRD_PREVTA),
   MIN(PRD_PREVTA)
FROM
   PRODUCTOS
GROUP BY
   PRD_PROCED

En este ejemplo, por cada país de procedencia de los productos, vemos cual es el mayor precio de venta y cual es el menor precio de venta.

Como estamos agrupando por país de procedencia de los productos, las funciones MAX() y MIN() nos devolverán el mayor y el menor precio de venta de los productos de cada país.

.

Ejemplo Nº 047 – Usando funciones (2)

2 comentarios

En este ejemplo veremos como usar la función:

  • LIST()

La función LIST() devuelve una cadena de caracteres consistiendo de todos los valores que no sean NULL en ese grupo. Esos valores pueden estar separados por una coma (por defecto) o por cualquier otro carácter que el programador especifique. Si todos los valores del grupo son NULL o el grupo está vacío, la función LIST() devuelve NULL.

SELECT
   PRD_PROCED,
   LIST(PRD_NOMBRE)
FROM
   PRODUCTOS
GROUP BY
   PRD_PROCED

Este SELECT nos mostrará todos los productos provenientes de cada uno de los países de procedencia. La columna LIST(PRD_NOMBRE) puede ser muy larga ya que en ella se encontrarán todos los productos que provienen de un país.

 

.

 

Comentando las líneas de los stored procedures y de los triggers

Deja un comentario

Cuando escribimos código muchas veces necesitamos o queremos agregar comentarios para que luego nos sea más fácil entender lo que hicimos. Hay dos formas de decirle al Firebird que lo que viene a continuación es un comentario:

  • Con dos guiones seguidos
  • Con barra asterisco para empezar el comentario y asterisco barra para finalizar el comentario
-- Este SELECT muestra a los productos ordenados alfabeticamente

SELECT
   PRD_CODIGO,     -- este es el código del producto
   PRD_NOMBRE,     -- este es el nombre del producto
   PRD_PREVTA      -- y este es el precio de venta del producto
FROM
   PRODUCTOS
ORDER BY
   PRD_NOMBRE

Los comentarios que empiezan con dos guiones van hasta el final de la línea. Todo lo que esté después de los dos guiones será un comentario.

/* Este SELECT muestra a los productos ordenados alfabeticamente.

Este comentario tiene varias líneas.
El comentario empieza con barra asterisco y finaliza
cuando se encuentra asterisco barra.
Es útil cuando el comentario que queremos escribir es muy largo
*/

SELECT
   PRD_CODIGO,     -- este es el código del producto
   PRD_NOMBRE,     -- este es el nombre del producto
   PRD_PREVTA      -- y este es el precio de venta del producto
FROM
   PRODUCTOS
ORDER BY
   PRD_NOMBRE

.

Ejemplo Nº 046 – Usando funciones (1)

1 comentario

El Firebird dispone de muchas funciones que pueden resultarte de utilidad. En este ejemplo veremos como usar las funciones:

  • LEFT()
  • RIGHT()
  • TRIM()
SELECT
   PRD_CODIGO,
   PRD_NOMBRE,
   PRD_PREVTA
FROM
   PRODUCTOS
WHERE
   LEFT(PRD_NOMBRE, 1) = 'A'

El SELECT anterior te mostrará todos los productos cuyos nombres empiezan con la letra ‘A’. Si quieres que los nombres empiecen con las letras ‘AN’ entonces en el WHERE deberías escribir:

LEFT(PRD_NOMBRE, 2) = 'AN'

También puedes pedir que te muestre los nombres de todos los productos que terminan con una letra. Este SELECT te mostrará todos los que finalizan con la letra ‘S’

SELECT
 PRD_CODIGO,
 PRD_NOMBRE,
 PRD_PREVTA
FROM
 PRODUCTOS
WHERE
 RIGHT(TRIM(PRD_NOMBRE), 1) = 'S'

Fíjate que en el WHERE se usaron dos funciones: RIGHT() y TRIM(), ¿por qué eso? porque la función TRIM() quita todos los espacios en blanco que están a la derecha.

Es necesario usar la función TRIM() porque de no hacerlo la función RIGHT(PRD_NOMBRE, 1) en la gran mayoría de los casos devolvería un espacio en blanco y no es eso lo que queremos.

PRD_NOMBRE = 'SALCHICHAS              '
RIGHT(PRD_NOMBRE, 1) = ' '
RIGHT(TRIM(PRD_NOMBRE), 1) = 'S'

.